【发布时间】:2015-06-16 13:44:46
【问题描述】:
我的 Shema 数据库是
用户表
id
login
parent
签名表
id
name
user_id (Sign owner)
数据透视表 user_sign
id
user_id
sign_id
我的用户模型包含
public function signs() {
return $this->belongsToMany('App\Sign', 'user_sign');
}
public function parent(){
return $this->belongsTo('User', 'parent');
}
public function children(){
return $this->hasMany('User', 'parent', 'user_id');
}
而我的 Sign 模型包含
public function users() {
return $this->belongsToMany('App\User', 'user_sign')->select(['users.id','name']);
}
父用户可以通过此路由将Sign附加/同步给子用户(他发送sign_id和child_id)
Route::put('sign/share', 'SignController@share')
要执行此操作,我必须在我的控制器中检查: - 如果 sign_id 的所有者是 $user_id - 如果 child_id 是 $user_id 的孩子
然后,我执行附加/同步。
现在,在我的控制器中,我有:
public function share(Request $request)
{
$userId = $request->input('user_id');
$sign = Sign::where('user_id', $userId)->find($id);
if(!$sign){
return response()->json(['message'=>'FAIL'], 404);
}
}
但是我在这之后完全屏蔽了...可以一行中检查并附加吗?
感谢您的帮助
【问题讨论】:
标签: php mysql laravel eloquent laravel-5