按名称而不是ID显示用户个人资料网址 [英] Display user profile url by name instead of ID

查看:44
本文介绍了按名称而不是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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆