Laravel Pivot分配给NULL结果多对多

时间:2018-12-08 17:53:53

标签: laravel eloquent pivot relationship

我很难找到为什么service_id返回空值

服务模型

public function categories()
{
    return $this->belongsToMany('App\Models\Categories', 'categories_services', 'services_id', 'categories_id');
}

类别模型

protected $table = "categories";

public function services()
{
    return $this->belongsToMany('App\Models\Services', 'categories_services', 'categories_id', 'services_id');
}

服务控制器

    $command = new \App\BizCommands\AddServices();
    $arr = $request->all();

    $arr["merchant_id"] = 1;
    $arr["peak_mode"] = 0;
    $arr["type"] = "SERVICE";
    $arr["tags"] = implode(",", $request->tags);
    $ret = $command->execute($arr, Auth::user());
    $ret->success = ($ret->error_code==0);

    $service = new Services;

    $service->categories()->attach($request->category_id);

    dd($service);

category_services表仅获取相应类别ID的ID,而新插入的服务ID在插入Categories_services时将导致为null。

非常感谢任何帮助

1 个答案:

答案 0 :(得分:0)

您刚刚创建了一个新的服务实例。因此,我认为它将为空。 例如:如果我必须为用户插入角色,那么我可以做的就是

$user = App\User::find(1);

$user->roles()->attach($roleId);

它将插入role_id。就您而言,您可以执行以下操作:

$service = new Service();
$service->name = $request->name;
$service->Save();

$service->categories()->attach($request->category_id);