0
我正在嘗試在laravel中創建一條路線,如果它已登錄但可以繼續使用,但如果不是,則仍然可以使用。Laravel(5.4)與當前用戶一起使用的護照路線,如果未登錄也可以使用
在我的情況下,我有一個名爲「場地」和一個「用戶」,可以有一個場地作爲他的最愛。
因此,這些都是我的路線:
Route::group(['middleware' => ['cors', 'bindings', 'auth:api']], function() {
Route::match(['GET', 'OPTIONS'], 'venue/{venue}', '[email protected]')->name('venue')->where('venue', '[0-9]+');
});
Route::group(['middleware' => ['cors', 'bindings', 'api'], 'namespace' => 'Api'], function() {
Route::match(['GET', 'OPTIONS'], 'venue/{venue}', '[email protected]')->name('venue')->where('venue', '[0-9]+');
});
現在我注意到,Auth::user();
只適用於與中間件的路線與'auth:api'
但我也想讓它變得場地,如果用戶沒有登錄。並且使用這兩個組不能以這種方式工作。
我的場館模型是這樣的:
class Venue extends Model
{
protected $appends = [
'favourite',
];
public function users()
{
return $this->belongsToMany('App\Models\User', 'venue_user');
}
public function getFavouriteAttribute()
{
$user = Auth::user();
$isFav = false;
if ($user) {
if ($user->venues) {
foreach ($user->venues as $item) {
if ($item->id === $this->id) {
$isFav = true;
}
}
}
}
return $isFav;
}
}
必須有一個更好的方式來做到這一點。
我希望有人能幫助我。