Php 在Laravel 5中将参数从控制器传递到模型
我无法将参数从控制器传递到Laravel 5中的模型。Php 在Laravel 5中将参数从控制器传递到模型,php,eloquent,laravel-5,Php,Eloquent,Laravel 5,我无法将参数从控制器传递到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) { $
我的型号:
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错误,我不知道为什么。如果我硬编码模型中的值,一切正常。这是您的答案。您尚未在内部函数中传递
$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');
}}
使用Use()
语句:
函数($join)使用($id)
编辑行上的App\Models\Widget::App\Models\{closure}()缺少参数2对不起,我犯了一个错误