Php 数组到字符串转换错误,Laravel

Php 数组到字符串转换错误,Laravel,php,laravel,laravel-5,eloquent,Php,Laravel,Laravel 5,Eloquent,我试图将数据保存到数据库中,但出现错误“数组到字符串转换”。是我的控制器 public function create() { $listapacjentow = Patient::pluck('nazwisko','id'); return view('leczenie.create')->with('listapacjentow', $listapacjentow); } public function store(CreateOperacjaRequest $req

我试图将数据保存到数据库中,但出现错误“数组到字符串转换”。是我的控制器

public function create()
{
    $listapacjentow = Patient::pluck('nazwisko','id');
    return view('leczenie.create')->with('listapacjentow', $listapacjentow);
}

public function store(CreateOperacjaRequest $request)
{
    $operacja = new Operacja($request->all());
    $PacjenciIds = $request->input('PacjentList');
    $operacja->user()->associate($PacjenciIds);
    $operacja->save();

    return redirect('leczenie');
}
这是我的表格

<div class="form-group">
<div  class="col-md-4 control-label">
    {!! Form::label('PacjentList','Wybierz pacjenta:') !!}
</div>
<div class="col-md-6">
    {!! Form::select('PacjentList[]', $listapacjentow); !!}
</div>

{!!Form::label('PacjentList','Wybierz pacjenta:')
{!!Form::select('PacjentList[]',$listapacjentow)


当我返回$operacja时,一切正常,但我无法将其保存到数据库

如果您只想将一个用户与
operacja
关联,请执行以下操作:

{!! Form::select('user_id', $listapacjentow); !!}

$operacja = Operacja::create($request->all());
如果要将多个用户添加到
Operacja
,则需要恢复一对多关系,这样
User
将具有
Operacja\u id
,而
Operacja
将不具有
User\u id


如果您想让
Operacja
拥有多个用户,并且一个用户可以拥有多个
Operacja
,请使用多对多关系。

存储方法中尝试这种方法

$operacja = new Operacja($request->all());
$operacja->user_id = $request->input('PacjentList.0');
$operacja->save();
$operacja->user()->saveMany($patients);

尝试
dd($request->input('Pacjenlist')查看它的外观是同一个问题。顺便说一句,当我添加到控制台中时,它的所有工作都意味着在store方法的最顶端使用dd来输出resultarray:1[▼   0=>“2”]它从form@MateuszSołobodowski请查看错误消息,找出您现在收到错误消息的确切位置(控制器、模型、视图…?)。请给我看相关的code.QueryException in Connection.php第647行:数组到字符串的转换(SQL:插入到“operacjas”(“nazwauslugi”、“datauslugi”、“user_id”、“updated_at”、“created_at”)值(qw,qw,32017-02-25 11:32:562017-02-25 11:32:56))@MateuszSołobodowski更新后的代码绝对不会出现同样的问题。似乎您没有删除其他代码。此外,正如我在回答中所描述的那样,很可能您使用了完全错误的关系。@MateuszSołobodowski这样做是为了创建一个数组,然后从该数组中获取第一个元素。这种溶液有气味。我的答案中的代码就是这样的,PeterPan666在最新的评论中向您推荐了完全相同的代码。我写这篇文章是为了那些将来会遇到同样问题的人,这样他们就知道该怎么做了。@MateuszSołobodowski是的,这与我的答案中的代码完全相同。使用冗余的
$operacja->user\u id=
save()
行。如果已经在使用批量分配,为什么要使用
save()
?只需使用
create()
方法即可。此外,如果只想选择一个用户,则不需要使用
multiple
。这是一对多的关系。调用未定义的方法Illumb\Database\Query\Builder::attach()。昨天,我试了一下。你能粘贴我的代码吗?更改后,我在laravelIts中是新的,没有用户id。错误是完整性约束冲突:19非空约束失败:operacjas.user_id。在我的系统中,患者可以进行许多操作。如果我创建i操作,我会从select中选择患者的日期、姓名和姓氏,但在operacjas表中,我有用户id为什么要将用户id存储在一个数组中(如果只有一个)?根据我从您的项目中了解的情况,我再次更新了我的答案。我是新来的。我该怎么感谢你呢?