Eloquent:从具有相同ID的多个表中删除行

时间:2016-09-24 18:26:24

标签: laravel eloquent

我是Laravel的新手,我试图从一个表中删除一个项目并从其他2个表中删除它的图像和计划如何在laravel中执行此操作

这是项目的删除控制器

OpenDB

我怎么能这样做我发现有人说这应该从模型中完成,但我不明白。

这是项目模型

public function destroy($id)
    {
        $project = Projects::findOrFail($id);
        $project->delete();
        return Redirect::to('admin/view-project')->with('message', 'Project deleted successfully');
    }

请任何人帮忙。

2 个答案:

答案 0 :(得分:0)

您可以在laravel中尝试模型事件。检查此

class Projects extends Eloquent implements UserInterface, RemindableInterface
{

    public static function boot()
    {
        parent::boot();

        Projects::deleted(function($project)
        {
            $project->projectImages()->delete();
            $project->projectPlans()->delete();
        });
    }
}

答案 1 :(得分:0)

考虑数据一致性时,更好的方法是在数据库层上实现外键。这会自动为你做,你不再需要考虑它。

请参阅https://laravel.com/docs/5.3/migrations#foreign-key-constraints