【发布时间】:2019-12-24 21:19:16
【问题描述】:
当对该路由 localhost:8000/api/user/{user}/reservations/{reservation} 发出 get 请求时,我想在 API 应用程序中为特定用户显示单个预订资源,然后用户应该能够查看预订的详细信息。
通过向localhost:8000/api/user/1/reservations/1 发出获取请求尝试进行测试,但没有返回任何内容。
这是应该返回预订的控制器方法
<?php
namespace App\Http\Controllers;
use App\User;
use App\Reservation;
...
public function showReservation(User $user, Reservation $reservation)
{
if (auth()->user() == $user) {
$reservedProduct = new ReservationResource(Reservation::where('user_id', $user->id)->where('id', $reservation->id)->first());
return response()->json(['reservation' => $reservedProduct]);
}
}
谁能告诉我为什么我的代码不起作用?请记住,实际上有该用户制作的保留产品
【问题讨论】:
-
在返回之前尝试
dd($reservedProduct)。如果它仍然为空,那么您的查询不正确。 -
请出示路线声明。如果没有返回,则可能 auth()->user() 不等于 $user。试试 auth()->user()->id == $user->id
-
您是否尝试在 if 之外返回一些东西以确保条件为真?
-
请出示路线声明。
-
@dparoli 这是路由声明
Route::get('user/{user}/reservations/{reservation}', 'ReservationController@showReservation')
标签: php laravel authentication laravel-5 laravel-5.8