Laravel根据另一个表中的user_id获取用户名

时间:2017-09-06 22:09:33

标签: php mysql laravel-5 eloquent foreign-keys

我正在尝试使用(并且围绕Eloquent)来获取用户表中的用户名,基于我存储在另一个表中的user_id,但我尝试的所有内容似乎都在抛出路障。 我尝试了一个循环(foreach),然后使用我认为正确的Eloquent语法来获得我需要的东西,但它没有用。 我之前使用过的视图完成了这项操作并且有效,但在控制器中无效。

希望有人在这里根据我的代码向我展示这应该如何工作。

主要模式:

class Lead extends Model
{
    protected $fillable = [
        'bname', 'tname'
    ];

    public function user()
    {
        return $this->belongsTo(User::class);      
    }
}

LeadController

class LeadController extends Controller
{
    use Helpers;

    public function index(Lead $leads)
    {


        $leads = $leads->get();

        //foreach $leads, get the username from 'user_id' from user table

        //return the leads, without the user_id, but with the username

        return $leads;

    }
}

User.php中的函数(类用户扩展Authenticatable)

public function leads()
{
     return $this->hasMany(Lead::class);
}

铅迁移

Schema::create('leads', function (Blueprint $table) {
    $table->increments('lead_id')->nullable(false);
    $table->string('bname')->nullable(false);
    $table->string('tname')->nullable();
    $table->integer('user_id')->index();
    $table->timestamps();
});

希望这对你有意义,有人可以帮助我学习:)。

感谢。

1 个答案:

答案 0 :(得分:1)

您可以使用

  

$ user = User :: where('id',$ userid) - > first();

在控制器中,假设您将用户标识存储在变量中,而'id'是用户表中的列名。您拥有用户模型作为结果,并且可以访问例如用户名

  

$ name = $ user-> username