doupaoshu8334 2017-02-13 16:52
浏览 45
已采纳

我如何通过1个请求laravel填充2个数据透视表

I have table Users

class User extends Authenticatable
{
    use Notifiable;

    protected $guarded = ['group_c', 'group_s', 'categories'];

    /**
     * The attributes that should be hidden for arrays.
     *
     * @var array
     */
    protected $hidden = [
        'password', 'remember_token',
    ];

    public function groups()
    {
        return $this->belongsToMany('App\Group');
    }

    public function categories()
    {
        return $this->belongsToMany('App\Category');
    }
}

this table have relation 'many to many' to 2 anoter tables: Group

class Group extends Model
{
    public function users()
    {
        return $this->belongsToMany('App\User');
    }
}

and Category

class Category extends Model
{
    public function Users()
    {
        return $this->belongsToMany('App\User');
    }
}

I take data from Post request, and put them to Users table ,but 'group' field I write into 'group_user' pivot table, in my controller:

class UserController extends Controller
{

    public function create_user(CrateNewUser $request)
    {
        //dd(Request::all());
        if (Request::input('user_type') == '1') {
            $groups = Request::input('group_c');
            $categories = Request::input('categories');
            User::create(Request::all())->groups()->attach($groups);
        } elseif (Request::input('user_type') == '2') {
            $groups = Request::input('group_s');
            $categories = Request::input('categories');
            User::create(Request::all())->groups()->attach($groups);
        }

        return $this->manage_users();
    }
}

but I need also write data from another Post field 'categories' to another Pivot table categories_user by one sql request, how i can do that ?

  • 写回答

1条回答 默认 最新

  • duanlao1552 2017-02-13 17:59
    关注

    In order to link user to a set of groups/category using their IDs you need to use sync() method. It will update the pivot table so that only synced records are linked.

    The following should do the trick:

    $user = User::create(Request::all());
    $user->groups()->sync($groups);
    $user->categories()->sync($categories);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)
  • ¥20 matlab yalmip kkt 双层优化问题