我无法将参数从我的Controller传递到Laravel 5中的模型 我的模特:
class Widget extends Model {
protected $fillable = array('type');
public function widget_fields_with_data($id)
{
return DB::table('widget_fields')
->join('banner_data', function($join) {
$join->on('banner_data.widget_field_id', '=', 'widget_fields.id')
->where('banner_data.banner_id', '=', $id);
})
->select('widget_fields.*', 'banner_data.value');
}}
在我的控制器中
$widget->widget_fields_with_data('54')->get();
这似乎返回未定义变量:id 错误,我无法弄清楚原因。
如果我对模型中的值进行硬编码,一切正常。
答案 0 :(得分:4)
使用use()
声明:
function($join) use($id)
答案 1 :(得分:0)
这是你的答案。你还没有通过内部函数$id
。
public function widget_fields_with_data($id)
{
return DB::table('widget_fields')
->join('banner_data', function($join) use($id) { // pass $id here
$join->on('banner_data.widget_field_id', '=', 'widget_fields.id')
->where('banner_data.banner_id', '=', $id);
})
->select('widget_fields.*', 'banner_data.value');
}}