我正在使用W. Jason Gilmore撰写的Easy Laravel Book中的样本。我根据本书中的示例创建了以下方法:
public function categories(){
return $this->belongsToMany('todoparrot\Category', 'category_todolist')->withTimestamps();
}
然后我创建了自己的自定义方法:
public function categorylist(){
return $this->categories()->get()->lists('id')->all();
}
我的自定义方法取决于上面的第一个。我创建该方法的原因是因为5.1中的更改不会返回数组中的数据。我需要在一个单独的文件中使用数组:
<div class="form-group">
{!! Form::label('Categories') !!}
{!! Form::select('categories', $categories, $list->categorylist(), array('multiple'=>'multiple','name'=>'categories[]')) !!}
</div>
在浏览器中一切正常,但我想知道为什么我不能在修补程序中调用categorylist()。
如果我打电话给类别(),我明白了:
>>> $foo->categories()
=> <Illuminate\Database\Eloquent\Relations\BelongsToMany #000000005647099500000001622e905d> {}
>>>
如果我打电话给categorylist(),我明白了:
>>> $foo->categorylist()
BadMethodCallException with message 'Call to undefined method Illuminate\Database\Query\Builder::categorylist()'
>>>
当浏览器中的所有内容按预期正常工作时,为什么我会在Tinker中收到 调用未定义的方法 错误。
我正在使用Laravel 5.1