按名称而不是ID显示用户个人资料网址 [英] Display user profile url by name instead of ID
本文介绍了按名称而不是ID显示用户个人资料网址的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我是新手.我正在尝试返回会员资料的视图
I am Newbie. I'm trying to return a view of member profile
目前,用户个人资料可以通过其 ID 进行访问,就像这样
At the moment, the user profile is accessible by its ID, like so
个人资料/7
我想通过我创建的名称来访问它
I would like to access it through the name that I've created
个人资料/约翰
这是我的路线
Route::get('profile/{id}', 'ProfilController@tampilkanID');
这是我的控制器
public function tampilkanID($id)
{
$auth = Auth::user()->id;
$users=\App\users::all()->whereNotIn('id',$auth);
$tampilkan = Users::find($id);
return view('tampilkan', compact('tampilkan', 'users'));
}
这就是我如何在刀片中称呼它
and this how i call it in my blade
@foreach($users as $user)
<tr>
<td><a id="teamname" href="{{ url('profile',$user->id) }}" target="_blank">{{$user->name}}</a></td>
</tr>
@endforeach
谢谢
推荐答案
尝试一下:
路线:
Route::any('profile/{name}', 'ProfilController@index')->name('profile.index');
控制器:
public function index(Request $request, $name)
{
$user = User::where('name', $name)->first();
if(isset($user))
return view('tampilkan', ['user' => $user]);
return "user not found!";
}
刀片:
@foreach($users as $user)
<tr>
<td><a id="teamname" href="{{ route('profile.index',['name' => $user->name]) }}" target="_blank">{{$user->name}}</a></td>
</tr>
@endforeach
建议:
如果要执行此操作,还应该在 users
表中将"name"列设置为"unique",以便每次仅获得一个用户,而不会使用户彼此混淆.
Suggestion:
if you're doing this, you should also set "name" column to "unique" in users
table in order to get exactly one user each time and not confuse users to each other.
这篇关于按名称而不是ID显示用户个人资料网址的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文