经营者似乎不在Laravel

时间:2017-03-16 22:24:15

标签: php mysql laravel

我是laravel的新人,而且我还在学习更多的东西。但是现在我收到了一个我从未在普通PHP中看到过的错误。我在功能目录中测试的一些操作员不工作,而其他操作员则工作。只有=,!=和<>工作,而<,>,> =和< = don&#t; t。

它给了我:"非法的运营商和价值组合&#34 ;;还有:->where('Price', '(operator)', **null**)。我试过" wherenull"但是没有用。任何人都可以帮我解决这个问题吗?我正在使用laravel 5.4。

代码:

控制器(在这种情况下,我放置了"> ="它不起作用)

function catalog(Request $abc) {
    $categoryesc = $abc->categoryesc;
    $priceesc = $abc->priceesc;
    $categories = DB::table('categories')->pluck('Category', 'id');
    $robots = DB::table('robots')->where('Category_id', $categoryesc)->where('Price', '>=', $priceesc)->get();
    return view('catalog', compact('robots', 'categories'));
}

视图

@extends('layouts.layout')
@include('header')

<main>
<div>Choose the category</div>
{!! Form::open(array('method' => 'GET')) !!}
    {!! Form::select('categoryesc', $categories) !!}
    {{ Form::number('priceesc') }}
    {!! Form::submit('Ok') !!}
{!! Form::close() !!}

<div>Choose the model</div>
<b>On this page ({{ $robots->count() }} robots)</b>

<div id="area1">
@foreach($robots as $robot)
  {!! Form::open(array('action' => 'RobotController@orders', 'method' =>  'GET')) !!}
  {!! Form::hidden('modelesc', $robot->Model) !!}
  {!! Form::submit($robot->Model) !!}
  {!! Form::close() !!}
@endforeach
</div>

</main>

完整的错误消息是:

  

Builder.php第609行中的InvalidArgumentException:非法操作符和值组合

表观解决方案

我认为我已经解决了这个问题:我在\vendor\laravel\framework\src\illuminate\database\query\builder.php和第627行添加了&#34;&lt; =&#34; (我想要使用的操作员)。现在它正在运作。否则我将在稍后回复。

1 个答案:

答案 0 :(得分:0)

此时,您应该开始对$robots查询的输入进行疑难解答。

不是返回视图,而是返回$robots之前从所有查询中获得的值。如果有任何不正确的开始检查原因(可能没有任何数据或错误的数据)

function catalog(Request $abc) {
    $categoryesc = $abc->categoryesc;
    //$priceesc = $abc->priceesc;
    //$categories = DB::table('categories')->pluck('Category', 'id');
    //$robots = DB::table('robots')->where('Category_id', $categoryesc)->where('Price', '>=', $priceesc)->get();
    dd($categoryesc); // is this the correct value you want to send to the `$robots` query? If yes continue to next variable
}

检查第二个变量:

function catalog(Request $abc) {
$categoryesc = $abc->categoryesc;
$priceesc = $abc->priceesc;
//$categories = DB::table('categories')->pluck('Category', 'id');
//$robots = DB::table('robots')->where('Category_id', $categoryesc)->where('Price', '>=', $priceesc)->get();
//return view('catalog', compact('robots', 'categories'));
dd($priceesc); // is this the correct value you want to send to the `$robots` query? If yes continue to next variable and so on
}

它们都不应该返回一个数组。如果其中一个值是数组,则上一个查询将不起作用。

更新

您的表单未将值发送到function catalog