doujiunai2169 2017-05-07 18:13
浏览 157
已采纳

如何从laravel 5.3上的user_id获取用户名?

@foreach($productChunk as $product)
  <div class="pull-left user_id">{{ $product->user_id }}</div>
@endforeach

currently this is my code. it currently show the user's id that upload that product how to make it show the uploader name?

public function getIndex()
{
  $products = Product::all();
  return view('shop.index', compact(['products']));
}

and this is the code from the controller

i already made the relationship

//Product.php
public function user()
{
  //$this->belongsTo(User::class);
  $this->hasOne('App\User');
}


//User.php
<?php
namespace App;
use Illuminate\Notifications\Notifiable;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Foundation\Auth\User as Authenticatable;

class User extends Authenticatable
{
use Notifiable;

public function product()
{
  return $this->hasMany('App\Product');
}
protected $fillable = [
    'name', 'email', 'password',
];

protected $hidden = [
    'password', 'remember_token',
];
}

this i the table schema for both

//user
Schema::create('users', function (Blueprint $table) {
        $table->increments('id');
        $table->string('name');
        $table->string('email')->unique();
        $table->string('password');
        $table->rememberToken();
        $table->timestamps();
    });
//product
Schema::create('products', function (Blueprint $table) {
        $table->increments('id');
        $table->string('name');
        $table->text('description');
        $table->integer('price');
        $table->integer('category_id');
        $table->string('image')->nullable();
        $table->integer('user_id');
        $table->timestamps();
    });
}
  • 写回答

2条回答 默认 最新

  • dongwu8050 2017-05-07 20:00
    关注

    replace

    public function user()
    {
      return $this->belongsTo('App\User');
    }
    

    with

    public function user()
    {
      return $this->belongsTo('App\User','id','user_id');
    }
    

    in Product Model. and also use get() instead of all() in controller.

    $products = Product::get();
    

    UPDATE: In Prodcut.php your user() method is not returning a relation type. You didnt notice the answer i posted earlier, see the difference between your user() method and the method i have posted earlier. Your method need to return a relation type.

    Replace

    public function user() { $this->belongsTo('App\User'); }

    with

    public function user() { return $this->belongsTo('App\User'); }

    in Product.php and access user name in your view using $product->user->name

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP