Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在Laravel的透视表中使用sync分离_Php_Laravel_Eloquent - Fatal编程技术网

Php 在Laravel的透视表中使用sync分离

Php 在Laravel的透视表中使用sync分离,php,laravel,eloquent,Php,Laravel,Eloquent,我有一些奇怪的事情发生,我不明白,不知道是否有人能帮我弄清楚到底发生了什么 我有两个表(评估员、流程)和一个轴(流程评估员)。我正在尝试用评估员的流程更新透视图,所以我有一个表单,提交时会传递给此方法 public function updateProcesses( $id ) { $assessor = $this->model->find( $id ); return $assessor->processes()->sync( $this->re

我有一些奇怪的事情发生,我不明白,不知道是否有人能帮我弄清楚到底发生了什么

我有两个表(评估员、流程)和一个轴(流程评估员)。我正在尝试用评估员的流程更新透视图,所以我有一个表单,提交时会传递给此方法

public function updateProcesses( $id )
{
    $assessor = $this->model->find( $id );
    return $assessor->processes()->sync( $this->request->get( 'process_id' ) );
}
这很好,但是当更新一个没有进程的用户时,我会收到一条错误消息

Argument 1 passed to Illuminate\Database\Eloquent\Relations\BelongsToMany::formatSyncList() must be of the type array, null given, called
然而,(这是奇怪的一点)我也有一个用户配置文件模块,它使用完全相同的方式与数据透视表“同步”。然而,当我提交表单时,未选中该特定模块的所有选项,然后它就工作了,用户在数据透视中与它们分离


我做错了什么?有什么想法吗?

只需将其转换为数组:

return $assessor->processes()->sync( (array) $this->request->get('process_id') );

或者,您可以使用空数组作为
get()
的默认值:

然而,第一种选择更可靠

return $assessor->processes()->sync( $this->request->get('process_id', []) );