【问题标题】:Delete Data From all tables using Load() Laravel 5.5使用 Load() Laravel 5.5 从所有表中删除数据
【发布时间】:2018-03-12 17:22:33
【问题描述】:

我正在尝试从 Model 表中删除 Model 并从 Comments 表中删除其所有 cmets...我当前的代码从另一个表中删除了模型,但没有删除其 cmets...

这是我的销毁函数

public function destroy(Request $request,CadModel $cadmodel)
    {
        $cadmodel->load('comments')->delete();
        $request->session()->flash('message.level', 'success');
        $request->session()->flash('message.content', 'File Deleted Successfully!');
        return redirect()->route('dashboard');
    }

这是我在 CadModel Laravel 模型中定义的关系...

 public function comments()
    {
        return $this->hasMany(Comment::class);
    }

请回复并建议我删除..Model及其评论的解决方案

【问题讨论】:

  • 你可以使用 Eloquent。检查这个stackoverflow.com/questions/14174070/…
  • 我需要一个不使用 Eloquent 的解决方案..
  • 我猜你需要编写自己的解决方案
  • 为什么不想用eloquent?

标签: php mysql laravel-5 laravel-blade destroy


【解决方案1】:

在你的迁移中,设置你的相关cmets在模型被删除时用onDelete('cascade')删除。

例子:

/**
    * Run the migrations.
    *
    * @return void
    */
    public function up()
    {
        Schema::create('comments_model', function(Blueprint $table)
        {
            $table->increments('id');
            $table->integer('comment_id')->unsigned();
            $table->integer('model_id')->unsigned();

            $table->foreign('comment_id')->references('id')->on('comments')->onDelete('cascade');
            $table->foreign('model_id')->references('id')->on('models')->onDelete('cascade');
        });
    }

【讨论】:

    猜你喜欢
    • 2018-07-08
    • 2018-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多