Form :: model的选定值标签不会绑定Model的属性

时间:2015-07-05 16:51:29

标签: laravel laravel-5

我在学习Laravel时尝试将Model的属性绑定到select标签的选定值时遇到问题。我试图将第3个参数保留为null因为我相信Form Model Binding将自动处理它但它不起作用。这是我已经尝试过的:

   {{$article->tag_list}} // show [1,3]

    //it doesn't work 
   {!! Form::select('tag_list[]', $tags, null , ['class' => 'form-control', 'multiple'] ) !!}
    -------------

    //it doesn't work as well
    {!! Form::select('tag_list[]', $tags, $article->tag_list  , ['class' => 'form-control', 'multiple'] ) !!}
    -----------

    //it works
    {!! Form::select('tag_list[]', $tags, [1,3] , ['class' => 'form-control', 'multiple'] ) !!}

在模型中我有getTagListAttribute()可以正常工作。

public function getTagListAttribute(){
    return $this->tags->lists('id');
}

使用文本输入,表单工作正常。顺便说一下,我使用5.2.1版本。我在这里缺少什么?

1 个答案:

答案 0 :(得分:3)

我找到了丢失的一块。 select函数需要一个数组,但getTagListAttribute()返回一个Collection对象。

public function getTagListAttribute(){
  return $this->tags->lists('id')->all();
}
or I can do this
public function getTagListAttribute(){
  return $this->tags->lists('id')->toArray();
}