我在学习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版本。我在这里缺少什么?
答案 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();
}