我正在尝试使用此代码检查我的数据库以查看某个商品是否有库存。如果任何一个字段等于零,我希望它返回零。
if (DB::table('Inventory')
->where('type', '=', $id)
->where(Input::get('condition'), '=', 0)
->orWhere(Input::get('memory'), '=', 0)
->orWhere(Input::get('color'), '=', 0)
->orWhere(Input::get('accessories'), '=', 0)
->orWhere(Input::get('carrier'), '=', 0)
->count() = 0)
{
return Redirect::back()
->with('danger', 'This item is currently out of stock');
}
这是我得到的错误:无法在写上下文中使用方法返回值
我只使用了laravel几天,所以在评价这个问题时请记住这一点。
答案 0 :(得分:1)
这就是你要找的东西:
$input = Input::only('condition', 'memory', 'color', 'accessories', 'carrier');
if ( ! Inventory::where($input + ['type' => $id])->first())
{
return Redirect::back()
->with('danger', 'This item is currently out of stock');
}
答案 1 :(得分:1)
您得到的错误是因为您实际上传递了输入字段的值,而不是给它字段名称,并且您还尝试通过只有一个&#39将值0分配给count() ; ='
这应该是代码:
if (DB::table('Inventory')
->where('type', '=', $id)
->where('condition', '=', Input::get('condition'))
->orWhere('memory', '=', Input::get('memory'))
->orWhere('color', '=', Input::get('color'))
->orWhere('accessories', '=', Input::get('accessories'))
->orWhere('carrier', '=', Input::get('carrier'))
->count() == 0)
{
return Redirect::back()
->with('danger', 'This item is currently out of stock');
}
另外,为什么'类型'假设等于$ id ??
*注意:您也可以省略' ='在where字段中,因为它是默认运算符,并且如下所示:->where('color', Input::get('color'))
。