我正在尝试通过使用Laravel中的外键从表中删除数据

祖拜尔·马利克

我正在尝试使用外键删除数据,但不幸的是没有从FreeDownloadFiles表中删除,如何从该表中删除数据,请帮助我。

注意:数据已成功从freedownload表中删除,但未从FreeDownloadFiles表中删除

free_download table
 
id  |  name | images


free_download_files table

 id | free_download_id | images 

控制者

    public function destroy(Request $request)
    {
        $freedownload = FreeDownload::findOrFail($request->deleteId);
        $freedownloadfiles = FreeDownloadFiles::where('free_download_id', $request->deleteId)->get();

        foreach ($freedownloadfiles as $key => $value) {

            $delete = $value->delete();
        }

        // apply your conditional check here
        if (false) {
            $response['error'] = 'This FreeDownload has something assigned to it.';
            return response()->json($response, 409);
        } else {
            Storage::disk('yourstitchart')->delete($freedownload->icon);
            $response = $freedownload->delete();
            return response()->json($response, 200);
        }
    }
唐卡纳什

您可以FreeDownloadFiles通过挂钩模型定义中的模型deleting事件来自动删除与记录关联的图像/文件FreeDownloadFiles


class FreeDownloadFile extends Model
{
     protected static function booted()
     {
        static::deleting(function ($record) {

            /**
             * if images field contains string with comma separated paths to image files
             * convert to array explode(',', $record->images)
             * replace comma with whatever separator is used eg ;
             */
            foreach(explode(',', $record->images) as $image) { 
                Storage::delete($image);
            }                
        });
     }
}

与自动删除与FreeDownloadFiles关联的类似,FreeDownload我们可以将deleting事件关联FreeDownload


class FreeDownload extends Model
{
   protected static function booted()
     {
        static::deleting(function ($record) {

            //can also use higher order magic
            //$record->freeDownloadFiles->each->delete();

            foreach($record->freeDownloadFiles as $file) {
                $file->delete();
            }           
        });
     }
}

然后,控制器方法可以变得简单

public function destroy(Request $request)
    {
        $freedownload = FreeDownload::findOrFail($request->deleteId);
        

        // apply your conditional check here
        if (false) {
            $response['error'] = 'This FreeDownload has something assigned to it.';
            return response()->json($response, 409);
        } else {
            Storage::disk('yourstitchart')->delete($freedownload->icon);
            $response = $freedownload->delete();
            return response()->json($response, 200);
        }
    }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我正在尝试在 laravel 5.8 中创建外键约束

来自分类Dev

在这种情况下,应如何使用外键从不同的mysql表中删除数据?

来自分类Dev

通过外键从联结表中检索数据 - Laravel

来自分类Dev

从表中删除数据以外键为主

来自分类Dev

使用外键从多个表中删除

来自分类Dev

通过 AJAX 调用从数据表中删除数据

来自分类Dev

如何使用php pdo从mysql中具有外键约束的数据库中删除数据

来自分类Dev

在Laravel中删除数据透视表中的行

来自分类Dev

Laravel 4.1从响应中删除数据透视表属性

来自分类Dev

如何从laravel中的表中使用两个外键从单个表中获取数据

来自分类Dev

在adonisjs中使用外键删除数据时出错

来自分类Dev

如何查询通过外键连接的多个表中的数据?

来自分类Dev

如何使用异常表从选举网站中删除数据

来自分类Dev

使用按钮从表中删除数据行

来自分类Dev

SQL 如何使用 INNER JOIN 从表中删除数据

来自分类Dev

如何通过 Laravel 中的外键检索数据?

来自分类Dev

使用Laravel中的模式框删除数据

来自分类Dev

在Laravel 5中使用Delete glyphicon删除数据

来自分类Dev

使用Laravel中的模式框删除数据

来自分类Dev

MySQL从表中删除数据

来自分类Dev

自动从DynamoDb表中删除数据

来自分类Dev

从特定月份的表中删除数据

来自分类Dev

MySQL从表中删除数据

来自分类Dev

删除数据表中的行

来自分类Dev

Postgres-如何删除数据库中除3外的所有表

来自分类Dev

如何在Laravel中使用外键从2个表中返回数据

来自分类Dev

如何从 $data Laravel 中删除数据

来自分类Dev

我正在尝试从数组中删除元素

来自分类Dev

TSQL基于外键从表中删除

Related 相关文章

热门标签

归档