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;
}
}
必须有一个更好的方式来做到这一点。
我希望有人能帮助我。