我有以下数据库表结构
users table
id
mobile
name
devices
id
user_id
device
ip
active
一个用户可以拥有多个用户将从中登录的设备
现在的问题是如何为特定用户存储和访问设备 例如,用户sam('id',1)有两个设备android('user_id',1)和iphone('user_id',1)。所以当用户来登录时,我会有手机号码。为了从用户表中获取特定用户的id,我将在用户的id上运行设备表上的另一个查询,这是我从之前的查询获得的,并且我有设备相关的数据。
但我知道我错了。什么是另一种方式。当我要存储用户和相关设备时,就会发生同样的事情。首先我存储用户,然后通过为同一用户获取id i存储设备。
这是我的User.php模型
class User extends Model
{
protected $fillable = ['mobile','name'];
public function device(){
$this->hasMany('App\Device','tempuser_id');
}
}
请告诉我如何使用雄辩的一对多关系解决这个问题。
答案 0 :(得分:1)
在模型中
public function devices()
{
return $this->hasMany('App\Device','user_id', 'id');
}
将设备添加到用户
$user->devices()->save($device);
获取设备
foreach($user->devices as $device)
{
// device here
}
答案 1 :(得分:1)
To save devices for a particular user, you can use
public function add(Request $request){
$device= new \App\Device;
$device->user_id = $request->user()->id;
$device->device = $request->device;
$device->ip = $request->ip;
$device->active =$request->active;
$devices->save();
}
And to retrieve devices for a user, write in your controller
$devices = \App\User::find(Auth::user()->id)->devices;