質問編集履歴
2
解決
test
CHANGED
File without changes
|
test
CHANGED
@@ -110,4 +110,36 @@
|
|
110
110
|
Route::post('destroy/{id}/', [ContactFormController::class, 'destroy'])->name('contact.destroy');
|
111
111
|
});
|
112
112
|
```
|
113
|
+
# 解決
|
114
|
+
アドバイスをもとに下記修正したところ、想定通りの動きができました。
|
115
|
+
### ルーティング
|
116
|
+
アクションを全て記載していたので、resourcesに変更してコードをスッキリしました。
|
117
|
+
```PHP:routes/web.php
|
118
|
+
Route::group(['middleware'=>'auth'], function(){
|
119
|
+
Route::resource('contact', ContactFormController::class,
|
120
|
+
);
|
121
|
+
```
|
113
122
|
|
123
|
+
### コントローラーの記載
|
124
|
+
こちらの記事を参考にフィルを使う場合の記載に変更しました。結局authorizeを使用した方法しか今はわかりませんでしたが、authorizeの第二引数の使い方が良くないことは理解できました。またルーティングをresourceにすると、updateメソッドで$idを使用しないと値をとれませんでした。
|
125
|
+
ただ、これで投稿ユーザーしか編集ができないように設定することができました!
|
126
|
+
[fillを使ったカラムの登録](https://qiita.com/tkt989/items/c2e01ec2fe91ef5f08d2 "fillを使ったカラムの登録")
|
127
|
+
```PHP
|
128
|
+
public function update(Request $request, $id)
|
129
|
+
{
|
130
|
+
|
131
|
+
$contact = ContactForm::find($id);
|
132
|
+
$this->authorize('update', $contact); //authorizeを使用した認可
|
133
|
+
$contact->fill([
|
134
|
+
'name' => $request->your_name,
|
135
|
+
'title' => $request->title,
|
136
|
+
'email' => $request->email,
|
137
|
+
'url' => $request->url,
|
138
|
+
'gender' => $request->gender,
|
139
|
+
'age' => $request->age,
|
140
|
+
'contact' => $request->contact,
|
141
|
+
]);
|
142
|
+
$contact->save();
|
143
|
+
return redirect()
|
144
|
+
->route('contact.index');
|
145
|
+
```
|
1
ルーティングを追加しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -98,3 +98,16 @@
|
|
98
98
|
|
99
99
|
よろしくお願いします。
|
100
100
|
|
101
|
+
### ルーティング
|
102
|
+
```PHP:routes/web.php
|
103
|
+
Route::group(['prefix'=>'contact','middleware'=>'auth'], function(){
|
104
|
+
Route::get('index', [ContactFormController::class ,'index'])->name('contact.index');
|
105
|
+
Route::get('create', [ContactFormController::class ,'create'])->name('contact.create');
|
106
|
+
Route::post('store', [ContactFormController::class ,'store'])->name('contact.store');
|
107
|
+
Route::get('show/{id}/', [ContactFormController::class, 'show'])->name('contact.show');
|
108
|
+
Route::get('edit/{id}/', [ContactFormController::class, 'edit'])->name('contact.edit');
|
109
|
+
Route::post('update/{id}/', [ContactFormController::class, 'update'])->name('contact.update');
|
110
|
+
Route::post('destroy/{id}/', [ContactFormController::class, 'destroy'])->name('contact.destroy');
|
111
|
+
});
|
112
|
+
```
|
113
|
+
|