从ID获取用户名

时间:2018-03-28 11:22:30

标签: laravel

我在Laravel 5.5应用程序中有一个刀片模板,它返回一个用户ID整数

我正在寻找一种方法来从刀片模板中获取该值的用户名

该值只保存在表中,并且没有关系设置,是否有办法获取用户名而无需建立关系?

**更新**

我的产品控制器看起来像这样......

public function index()
{

    $users = User::all();

    $products= Product::all();

    return view('products.index',compact('products', 'users'));     
}

所以现在我在刀片模板中提供了用户,但现在我需要从产品中包含的id中获取用户

4 个答案:

答案 0 :(得分:1)

创建帮助文件:按照此规则进行操作:https://laravel-news.com/creating-helpers

并制作一个这样的函数:

function getUsername($uerId) {
 return \DB::table('users')->where('user_id', $userId)->first()->name;
}

并从您的视图中调用此函数,如下所示:

 {{getUsername($id))}} //it will print user name;

答案 1 :(得分:1)

在将用户数据传递给视图的控制器中,您可以传递整个$user对象并在视图中将其打印为{{ $user->name }},也可以设置一个只包含用户名的变量传递它,但是你正在使用它。

我会做第一个,比如:

public function index()
{
    $user = User::where('id',$id)->firstOrFail();
    return view('dashboard.index', compact('user'));
}

或者,如果您从数据库中获取所有用户,则可以使用以下示例:

public function index()
{
    $users = User::all();
    return view('dashboard.index', compact('users'));
}

然后在你看来你可以做到

@foreach($users as $user)
    {{ $user->name }}
@endforeach

修改

自从看到您更新的问题后,您就可以在usersproducts之间建立关系。所以,你会说user has many productsproduct belongs to a user

class User extends Model
{
    /**
     * Get all of the products for the user.
     */
    public function products()
    {
        return $this->hasMany('App\Product');
    }
}

然后

class Product extends Model
{
    /**
     * Get the user that is assigned to the product
     */
    public function user()
    {
        return $this->belongsTo('App\User');
    }
}

设置好后,您可以循环浏览产品并获取如下用户名:

@foreach($products as $product)
    {{ $product->user->name }}
@endforeach

答案 2 :(得分:0)

Auth::user()->name如果用户在线。如果不是,你必须具有如下控制器功能:

$users = User::all();

and in blade 

@foerach($users as $user)
{{$user->name}}
@endforeach

答案 3 :(得分:0)

{{\App\User::findOrFail($id)->name}}