laravel wherebetween in relations 不起作用
laravel wherebetween in relations not working
我在 mysql 中有两个 table,1. 车辆和 2.Locations
我正在使用 eloquent 关系来定义车辆 table 与位置的关系。
这是我的车辆模型的样子。
namespace App;
use Illuminate\Database\Eloquent\Model;
class VehicleModel extends Model {
function locations(){
return $this->hasMany("App\locations", "vehicle_id", "id");
}
}
我正在尝试 运行 一个可以让我在两个给定时间之间获取特定车辆位置的查询。
这是我正在尝试做的事情:
App\VehicleModel::find(3)->location->whereBetween('locations.time', $range);
我期望上面的查询会给我日期之间的位置,当我 运行 没有关系时它会这样做。但是当我在关系中做 运行 时,我收到了一个意外错误。
PHP 错误:在第 1 行的 null 上调用成员函数 whereHas()
请帮我看看哪里错了。
提前致谢。
Using relationship method without parentheses return a collection, use parenthesis to return the relationship where you can add other query methods like whereBetween:
关系方法 return
App\VehicleModel::find(3)->location()->whereBetween('time', $range)->get();
您从其他关系模型发送查询location
您的查询如下所示location->location
请检查此代码
App\VehicleModel::find(3)->locations()->whereBetween('time', $range);
改为:
App\VehicleModel::find(3)->locations()->whereBetween('time', $range)->get();
我在 mysql 中有两个 table,1. 车辆和 2.Locations 我正在使用 eloquent 关系来定义车辆 table 与位置的关系。
这是我的车辆模型的样子。
namespace App;
use Illuminate\Database\Eloquent\Model;
class VehicleModel extends Model {
function locations(){
return $this->hasMany("App\locations", "vehicle_id", "id");
}
}
我正在尝试 运行 一个可以让我在两个给定时间之间获取特定车辆位置的查询。
这是我正在尝试做的事情:
App\VehicleModel::find(3)->location->whereBetween('locations.time', $range);
我期望上面的查询会给我日期之间的位置,当我 运行 没有关系时它会这样做。但是当我在关系中做 运行 时,我收到了一个意外错误。
PHP 错误:在第 1 行的 null 上调用成员函数 whereHas()
请帮我看看哪里错了。
提前致谢。
Using relationship method without parentheses return a collection, use parenthesis to return the relationship where you can add other query methods like whereBetween:
关系方法 returnApp\VehicleModel::find(3)->location()->whereBetween('time', $range)->get();
您从其他关系模型发送查询location
您的查询如下所示location->location
请检查此代码
App\VehicleModel::find(3)->locations()->whereBetween('time', $range);
改为:
App\VehicleModel::find(3)->locations()->whereBetween('time', $range)->get();