teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

記述したソースコードの追記

2019/11/18 14:13

投稿

kanaxxxxx
kanaxxxxx

スコア5

title CHANGED
File without changes
body CHANGED
@@ -5,9 +5,11 @@
5
5
  ###実現したいこと
6
6
  タスク管理アプリを作成中です。
7
7
  /folders/5/tasksで自分のフォルダIDへログインした後、
8
- /folders/6/tasksのURLへ直接アクセスしようとすると例外処理ではなく、folders/5/tasksへ戻る仕様を作成したいです。
8
+ /folders/6/tasks(他人フォルダID)のURLへ直接アクセスしようとすると例外処理ではなく、folders/5/tasksへ戻る仕様を作成したいです。
9
9
 
10
10
  公式ドキュメントを読んで実装してみましたが、以下の例外エラーの表示が消えません。
11
+ https://readouble.com/laravel/5.5/ja/errors.html
12
+ 上記日本語版ドキュメントのrenderメソッド部分を参照しました。
11
13
 
12
14
  ### 発生している問題・エラーメッセージ
13
15
  表示されるエラー:This action is unauthorized.
@@ -28,7 +30,7 @@
28
30
  ```
29
31
 
30
32
  ### 記述したソースコード
31
- app/Exceptions/Handler.php
33
+ 1.app/Exceptions/Handler.php
32
34
 
33
35
  ```
34
36
  use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler
@@ -40,7 +42,47 @@
40
42
  return parent::render($request, $exception);
41
43
  }
42
44
  ```
45
+ 2.routes/web.php
46
+ ```
47
+ Route::group(['middleware' => 'auth'], function(){
48
+ Route::get('/', 'HomeController@index')->name('home');
43
49
 
50
+ Route::get('/folders/create', 'FolderController@showCreateForm')->name('folders.create');
51
+ Route::post('/folders/create', 'FolderController@create');
52
+
53
+ Route::group(['middleware' => 'can:view,folder'],function(){
54
+ Route::get('/folders/{folder}/tasks', 'TaskController@index')->name('tasks.index');
55
+
56
+ Route::get('/folders/{folder}/tasks/create', 'TaskController@showCreateForm')->name('tasks.create');
57
+ Route::post('/folders/{folder}/tasks/create', 'TaskController@create');
58
+
59
+ Route::get('/folders/{folder}/tasks/{task}/edit', 'TaskController@showEditForm')->name('tasks.edit');
60
+ Route::post('/folders/{folder}/tasks/{task}/edit', 'TaskController@edit');
61
+ });
62
+ });
63
+ Auth::routes();
64
+
65
+ ```
66
+ 3.該当箇所のController
67
+ ```
68
+ public function index(Request $request, Folder $folder)
69
+ {
70
+ if($request->user()->cant('view', $folder)){
71
+ return redirect('');
72
+ }
73
+ $folders = Auth::user()->folders()->get();
74
+ $tasks = $folder ->tasks() ->get();
75
+
76
+ return view('tasks/index', [
77
+ 'folders' => $folders,
78
+ 'current_folder_id' => $folder->id,
79
+ 'tasks' => $tasks,
80
+ ]);
81
+ }
82
+
83
+ ```
84
+
85
+
44
86
  tasks.indexに戻る様にしたいです。
45
87
  類似する情報をネット上でもいくつか見つけたのですが、解決に至らなかった為、こちらで質問させて頂きました。
46
88
  どうぞよろしくお願い致します。