hasOne和belongsTo关系表 - laravel

时间:2016-09-27 15:50:43

标签: laravel laravel-5

我的桌子:

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;

1 个答案:

答案 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'],那么它也会返回用户信息。

希望这会有所帮助。