我想从AssetType表和TypeProperties表中删除数据。我可以删除AssetType表的数据,但不能删除TypeProperties。并出现以下错误:
试图获取非对象的属性“ id”。
function deleteType($id)
{
$type = AssetType::find($id)->delete();
$property = TypeProperties::where('assettype_id', $type->id)->get()->delete();
return redirect(url('assettype'));
}
答案 0 :(得分:0)
您不需要获取AssetType
。您可以使用传递给函数的$id
从两个表中删除。
function deleteType($id)
{
AssetType::where('id', $id)->delete();
TypeProperties::where('assettype_id', $id)->delete();
return redirect(url('assettype'));
}
答案 1 :(得分:0)
您实际上可以在迁移中进行设置:
$table->foreign('assettype_id')->references('id')->on('assettypes')->onDelete('cascade');
来源:http://laravel.com/docs/5.8/migrations#foreign-key-constraints
您还可以为“在删除时”和“在 更新”约束的属性:
$table->foreign('assettype_id') ->references('id')->on('assettypes') ->onDelete('cascade');