第一个User
表有四列:id ,first_name, last_name,password
我的Address
表有四个colmnns id , company_name,email , phone
普通Address_user
表:
我的用户模型看起来像http://pastebin.com/ntuvJ8Lj,我的地址模型看起来像这样
use Illuminate\Database\Eloquent\Model;
class Address extends Model
{
protected $fillable = [
'created_by',
'company_name',
'phone',
'email', 'address'
];
public function users()
{
return $this->belongsToMany('App\Models\User');
}
public function getAddressListAttribute()
{
return $this->users->lists('id');
}
}
现在我需要登录用户参与或连接的所有地址
1:
答案 0 :(得分:0)
User.php
中的
使用'地址'添加您的关系模型:
public function addresses() {
return $this->belongsToMany( Address::class, 'address_id', 'user_id' )->withTimestamps();
}
您在Address.php
与users
中写下了正确的关系,因此,我不会在此重新输入。
请注意,您不需要撰写address_id
和user_id
,因为如果您遵循惯例,只需雄辩就能预测它!
但是我可以告诉你,你没有遵循命名表的惯例,如果你想要 Eloquent 来预测你的模型和你的数据库中的表之间的关系,那么你必须得到名称您的模型是表名的单数,反之亦然,表:users
模型:User
。
要点:
$user = auth()->user(); // get logged in user
$addresses = $user->addresses()->get(); // get this user addresses. or use $user->addresses only
// now you may loop through it and have each of your addresses.
foreach($addresses as $address){
var_dump($address->company_name); // or perhabs ->email
}