我正在尝试使用(并且围绕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();
});
希望这对你有意义,有人可以帮助我学习:)。
感谢。
答案 0 :(得分:1)
您可以使用
$ user = User :: where('id',$ userid) - > first();
在控制器中,假设您将用户标识存储在变量中,而'id'是用户表中的列名。您拥有用户模型作为结果,并且可以访问例如用户名
$ name = $ user-> username