我的桌子:
users :
id fname email
brands:
id title user_id_made
每个用户都有brand
个,brand
个属于user
。
class Brand extends Model
{
protected $table = 'brands';
protected $fillable = array('title_fa',
'title_en','logo','user_id_made');
public function user()
{
return $this->hasOne('App\Models\User');
}
}
class User extends Authenticatable
{
use Notifiable;
protected $fillable = [
'fname' ,'lname' , 'username', 'email', 'password',
];
protected $hidden = [
'password', 'remember_token',
];
public function brand()
{
return $this->belongsTo('App\Models\Brand','user_id_made');
}
}
我的代码没有关于用户的任何输出。
$data['brands'] = \DB::table('brands')->find(1);
var_dump($data['brands']);
return;
答案 0 :(得分:0)
这不会加载用户。我建议你使用模型实例代替数据库实例。如果您想加载品牌用户,那么您可以使用laravel的热切加载。
首先在Brand.php模型中
您需要将第二个参数作为 user_id_made 传递给hasOne函数,否则它会将其视为user_id。
public function user()
{
return $this->hasOne('App\Models\User','user_id_made');
}
你可以这样做。
$data['brands'] = Brand::with('user')->find(1);
现在,如果您将返回$ data [' brands'],那么它也会返回用户信息。
希望这会有所帮助。