質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
DELETE

ファイルシステムからファイル、データベースからレコードを削除することまたはメモリ内のオブジェクトの割り当てを取り消すことをさします。もしくは、HTTPプロトコルのDELETEを指すこともあります。

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

MVC

MVC(Model View Controller)は、オブジェクト指向プログラミングにおけるモデル・ビュー・コントローラーの総称であり、ソフトフェア開発で使われている構築パターンとしても呼ばれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

Q&A

0回答

368閲覧

Laravel データ削除後のページリダイレクトができない

shunta80

総合スコア96

DELETE

ファイルシステムからファイル、データベースからレコードを削除することまたはメモリ内のオブジェクトの割り当てを取り消すことをさします。もしくは、HTTPプロトコルのDELETEを指すこともあります。

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

MVC

MVC(Model View Controller)は、オブジェクト指向プログラミングにおけるモデル・ビュー・コントローラーの総称であり、ソフトフェア開発で使われている構築パターンとしても呼ばれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

0グッド

0クリップ

投稿2022/01/26 10:56

前提・実現したいこと

下記画面で削除を押したときにそのままページが更新されて消したデータは表示させないようにしたい。

イメージ説明

viewでページ表示を書くとエラーはでないが消したデータが表示され、他の部分をクリックすると消える
それをridirectで1発で表示させないようにしたい。

発生している問題・エラーメッセージ

IDが渡されていないという内容のエラーが発生。
イメージ説明

該当のソースコード

下記コードで削除後の処理を行っています。

FolderController.php

public function delete(int $id){ $folders = Auth::user()->folders()->get(); $current_folder=Folder::find($id); $tasks=$current_folder->tasks()->get(); $current_folder->delete(); // このviewであればエラーはでない。 // return view('tasks.index')->with(['folders'=>$folders, // // 'current_folder_id' => $id, // 'current_folder_id' => $current_folder->id, // 'tasks'=>$tasks, // // var_dump($current_folder)]); // ]); // 下記3つどれも同じエラー return redirect()->route('tasks.index',['folders'=>$folders,'current_folder_id' => $current_folder->id,'tasks'=>$tasks,]); return redirect()->route('tasks.index',['folders'=>$folders,'current_folder_id' => $current_folder->id,'tasks'=>$tasks,],$current_folder->tasks); return redirect()->route('tasks.index',$current_folder->tasks); }

Folder.php

<?php namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; class Folder extends Model { // use HasFactory; public function tasks() { return $this->belongsTo('App\Models\Task'); } }

web.php

<?php use Illuminate\Support\Facades\Route; use Illuminate\Support\Facades\Auth; Route::get('homestead.test', function () { return view('home.blade.php'); })->middleware(['auth'])->name('homestead.test'); require __DIR__.'/auth.php'; Route::group(['middleware' => 'auth'], function() { Route::get('/', 'HomeController@index')->name('home'); Route::get('/folders/{id}/tasks', 'TaskController@index')->name('tasks.index'); Route::get('/folders/create', 'FolderController@showCreateForm')->name('folders.create'); Route::post('/folders/create', 'FolderController@create'); Route::get('/folders/{id}/tasks/create', 'TaskController@showCreateForm')->name('tasks.create'); Route::post('/folders/{id}/tasks/create', 'TaskController@create'); Route::get('/folders/{id}/tasks/{task_id}/edit', 'TaskController@showEditForm')->name('tasks.edit'); Route::post('/folders/{id}/tasks/{task_id}/edit', 'TaskController@edit'); Route::delete('/folders/{id}/delete', 'FolderController@delete')->name('delete'); Route::delete('/folders/{id}/edit/delete', 'TaskController@delete')->name('del'); }); Auth::routes();

index.blade.php

<!DOCTYPE html> <html lang="ja"> @extends('layout') @section('content') <div class="container"> <div class="row"> <div class="col col-md-4"> <nav class="panel panel-default"> <div class="panel-heading">フォルダ</div> <div class="panel-body"> <a href="{{ route('folders.create') }}" class="btn btn-default btn-block"> フォルダを追加する </a> </div> <div class="list-group"> @foreach($folders as $folder) <div class="po"> <a href="{{ route('tasks.index', ['id' => $folder->id]) }}" class="list-group-item {{ $current_folder_id === $folder->id ? 'active' : '' }} mm"> {{ $folder->title }} </a> <form action="{{route('delete',$folder->id)}}" method="post"> @csrf @method('DELETE') <button>削除</button> </div> </form> @endforeach </div> </nav> </div> <div class="column col-md-8"> <div class="panel panel-default"> <div class="panel-heading">タスク</div> <div class="panel-body"> <div class="text-right"> <a href="{{ route('tasks.create', ['id' => $current_folder_id]) }}" class="btn btn-default btn-block"> タスクを追加する </a> </div> </div> <table class="table"> <thead> <tr> <th>タイトル</th> <th>状態</th> <th>期限</th> <th></th> </tr> </thead> <tbody> @foreach($tasks as $task) <tr> <td>{{ $task->title }}</td> <td> <span class="label {{ $task->status_class }}">{{ $task->status_label }}</span> </td> <td>{{ $task->formatted_due_date }}</td> <td><a href="{{ route('tasks.edit', ['id' => $task->folder_id, 'task_id' => $task->id]) }}">編集</a></td> </tr> @endforeach </tbody> </table> </div> </div> </div> </div> @endsection

試したこと

Folder.php
ここのtasksでデータベースの情報を取得できると考えています。
belongsToをhasManyにしても同じエラーでできませんでした。

<?php namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; class Folder extends Model { // use HasFactory; public function tasks() { return $this->belongsTo('App\Models\Task'); } }

補足情報(FW/ツールのバージョンなど)

Laravel8 を使用

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問