我是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; (我想要使用的操作员)。现在它正在运作。否则我将在稍后回复。
答案 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