Laravel 如何使用slug或id创建路由
如何通过路由使用ID或slug调用用户配置文件? 如果用户调用自己的配置文件,它应该能够通过slug profile/{slug}打开它 如果访问的配置文件的隐私为3,则只能通过ID.profile/{ID}访问该配置文件 在另一种隐私中,它应该只能通过slug调用 我尝试了代码,但不幸的是它不起作用Laravel 如何使用slug或id创建路由,laravel,routes,difference,Laravel,Routes,Difference,如何通过路由使用ID或slug调用用户配置文件? 如果用户调用自己的配置文件,它应该能够通过slug profile/{slug}打开它 如果访问的配置文件的隐私为3,则只能通过ID.profile/{ID}访问该配置文件 在另一种隐私中,它应该只能通过slug调用 我尝试了代码,但不幸的是它不起作用 public function index($param) { $user = User::firstOrFail(); if(Auth::user() === $user){
public function index($param)
{
$user = User::firstOrFail();
if(Auth::user() === $user){
$user = User::where('slug', $param)->first();
}elseif ($user->profile->privacy === 3){
$user = User::where('id', $param)->first();
}else{
$user = User::where('slug', $param)->first();
}
}
路线:
Route::get('/profile/{param}', 'Profile\ProfilesController@index')->name('profile');
$param
参数将接收用户id或slug,请尝试以下代码:
public function index($param)
{
$user = User::where('slug', $param)->first();
if($user)
{
if($user->profile->privacy === 3)
{
// This user profile cannot access via slug
}
// User Accessible via slug
}
else
{
$user = User::where('id', $param)->first();
}
}
用户自己的配置文件和隐私级别不在3个配置文件中可以通过slug访问,因此您不想检查用户是否正在访问自己的配置文件。
$param
参数将接收用户id或slug,因此请尝试以下代码:
public function index($param)
{
$user = User::where('slug', $param)->first();
if($user)
{
if($user->profile->privacy === 3)
{
// This user profile cannot access via slug
}
// User Accessible via slug
}
else
{
$user = User::where('id', $param)->first();
}
}
用户自己的配置文件和隐私级别不在3个配置文件中都可以通过slug访问,因此您不想检查用户是否正在访问自己的配置文件。
$User
将永远不会==auth::User()
(精确匹配),它们是单独的实例。它们可能对您表示相同的实体,但它们是不同的实例<代码>$user可能==Auth::user()
<代码>==!====$user
永远不会==Auth::user()
(精确匹配),它们是独立的实例。它们可能对您表示相同的实体,但它们是不同的实例<代码>$user可能==Auth::user()
<代码>==!====代码>