[英]Convert MySQL Query Into Laravel Eloquent
我正在尝试将MySQL查询转换为Laravel口才查询。
下面的代码将选择一行结果,然后在该行中返回weekNum列的值
function currentWeek() {
$sql = "SELECT DISTINCT weekNum FROM schedule WHERE DATE_ADD(NOW(), INTERVAL -50 HOUR) < gameTimeEastern ORDER BY weekNum LIMIT 1 ";
$query = $mysqli->query($sql);
if ($query->num_rows > 0) {
$row = $query->fetch_assoc();
return $row['weekNum'];
}
}
在Laravel的SchedulesController中,这就是我要实现的目标。
public function index()
{
$schedules = Schedule::where('week', '=', 4)->get();
return view('schedules.index', compact('schedules'));
}
显然,我不想在一周内进行硬编码。这是我的尝试。
public function index()
{
$currentWeek = Schedule::distinct()
->where('gameTime', '<', Carbon::now()->addHours(100))
->orderBy('gameTime', 'desc')
->take(1)
->get();
$schedules = Schedule::where('week', '=', $currentWeek->week)->get();
return view('schedules.index', compact('schedules'));
}
但是我得到这个错误
ErrorException in SchedulesController.php line 25:
Undefined property: Illuminate\Database\Eloquent\Collection::$week
您无法访问属性,因为->get()
返回对象的集合。 为此,您只需要一个雄辩模型的对象。
如果只需要一个结果,则可以将->get()
替换为->first()
以直接接收模型对象。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.