【发布时间】:2021-01-01 17:07:35
【问题描述】:
我有 3 张桌子:
用户
id
role
email
typable_id
typable_type
买家
id
name
address
avatar
email
residential_id
住宅
id
name
city
state
这是我展示这种关系的模型
User.php
public function typable()
{
return $this->morphTo();
}
Buyer.php
public function residential()
{
return $this->belongsTo(Residential::class);
}
public function user()
{
return $this->morphMany(User::class, 'typable');
}
Residential.php
public function buyer()
{
return $this->hasMany(Buyer::class);
}
如果我想删除住宅,则需要删除该住宅的所有买家。与删除买家时也需要删除用户相同。我怎样才能做到这一点?这就是我的住宅控制器内部的销毁功能。
住宅控制器
public function destroy(Request $request)
{
$residentials = Residential::find($request->input('id'));
$residentials->id = $request->input('id');
$residentials->name = $request->input('name');
$residentials->delete($residentials);
return response()->json($residentials);
}
我已尝试将此代码用于删除买家(对于尚未使用的用户)在 destroy() 中,但要删除的买家没有任何更改。
$buyers = Buyer::where('residential_id','=',$request->residential_id)->first();$buyers->delete($buyers);
虽然这是我想删除买家时设法执行的代码,但用户也被删除了。
BuyerController
public function destroy(Request $request)
{
$users = User::where('email', '=', $request->email)->first();
$buyers = Buyer::find($request->input('id'));
$buyers->id = $request->input('id');
$buyers->name = $request->input('name');
$buyers->delete($buyers);
$users->delete($users);
return response()->json($buyers);
}
希望有人帮助并教我正确的方法。
【问题讨论】:
标签: php laravel phpmyadmin relationship one-to-many