Laravel 5.5 如何在关系中添加动态条件?
Laravel 5.5 How to add dynamic conditions inside a relationship?
我有一个关系来获取在特定日期创建的朋友,它使用静态日期参数
public function friends()
{
return $this->hasMany(Friend::class)->where('created_at','2018-01-31');
}
但是我需要为动态日期获取它,其中 $request 变量在关系中不可用。我试过这样不行
public function friends($request)
{
return $this->hasMany(Friend::class)->where('created_at',$request->date);
}
我该如何解决这个问题?
您可以使用 Laravel 辅助函数 request()
The request function returns the current request instance or obtains an input item
public function friends()
{
$date = request('date') ? : '2018-01-31'; // You can choose a default date, here '2018-01-31'
return $this->hasMany(Friend::class)->where('created_at', $date);
}
你可以在控制器中做这样的事情
public function data(){
Mdalname::friend($value)
}
并在模态中
public function friends($value )
{
return $this->hasMany(Friend::class)->where('created_at', $value);
}
模型将与您发布的模型保持一致:
public function friends($date)
{
return $this->hasMany(Friend::class)->where('created_at', $date);
}
在您的控制器中(示例):
$fooFriends = $foo->friends('2018-01-30')->get();
//Directly from $request or you can use different values/vars each time
$fooFriends = $foo->friends($request->date)->get();
我有一个关系来获取在特定日期创建的朋友,它使用静态日期参数
public function friends()
{
return $this->hasMany(Friend::class)->where('created_at','2018-01-31');
}
但是我需要为动态日期获取它,其中 $request 变量在关系中不可用。我试过这样不行
public function friends($request)
{
return $this->hasMany(Friend::class)->where('created_at',$request->date);
}
我该如何解决这个问题?
您可以使用 Laravel 辅助函数 request()
The request function returns the current request instance or obtains an input item
public function friends()
{
$date = request('date') ? : '2018-01-31'; // You can choose a default date, here '2018-01-31'
return $this->hasMany(Friend::class)->where('created_at', $date);
}
你可以在控制器中做这样的事情
public function data(){
Mdalname::friend($value)
}
并在模态中
public function friends($value )
{
return $this->hasMany(Friend::class)->where('created_at', $value);
}
模型将与您发布的模型保持一致:
public function friends($date)
{
return $this->hasMany(Friend::class)->where('created_at', $date);
}
在您的控制器中(示例):
$fooFriends = $foo->friends('2018-01-30')->get();
//Directly from $request or you can use different values/vars each time
$fooFriends = $foo->friends($request->date)->get();