Php Laravel雄辩,其中错误与<&燃气轮机;

Php Laravel雄辩,其中错误与<&燃气轮机;,php,mysql,laravel,eloquent,Php,Mysql,Laravel,Eloquent,我在本机php中查询了where 在何处键入“point” 我试着转换成雄辩的拉威尔 ->with('payments',function($query){ $query->where('type','<>','point'); }) ->带('payments',函数($query){ $query->where('type','point'); }) 但它显示的错误如下: mb_strpos()要求参数1为字符串,对象为给定值 如果这就是查询所需的

我在本机php中查询了where

在何处键入“point”

我试着转换成雄辩的拉威尔

 ->with('payments',function($query){
      $query->where('type','<>','point');
 })
->带('payments',函数($query){
$query->where('type','point');
})
但它显示的错误如下:

mb_strpos()要求参数1为字符串,对象为给定值


如果这就是查询所需的全部操作,那么您可以像这样链接它:

->with('payments')->where('type', '<>', 'point') //chain more after this
->带('payments')->其中('type','point')//在此之后链接更多

正确答案应该是,如果您试图过滤
类型
不等于
的付款

您使用了错误的语法。is的正确语法为:

->带有(['payments'=>函数($query){
$query->where('type','point');
}])

要解析查询中的动态参数,请尝试以下操作:

$string = 'points';
->with(['payments' => function ($query) use ($string) {
    $query->where('type', '<>', $string);
}])
$string='points';
->使用(['payments'=>函数($query)使用($string){
$query->where('type','''$string);
}])

这会有用的

更改为
=
@aldrin27都在雄辩地工作,不需要从
with()
闭包返回
$query
,它不是这样工作的。您的代码将过滤模型,但很明显OP想要过滤
付款
关系。啊,是的,您是正确的@Alexey Mezenin。没有意识到这是故意的。
$string = 'points';
->with(['payments' => function ($query) use ($string) {
    $query->where('type', '<>', $string);
}])