🫣
withメソッドチェーンの使い方が分からなかった
-> メソッドチェーン
メソッドをつなげて記述できる
withメソッドチェーンの使い方が分からなかった
redirect()に続く ->with と viewメソッドに続く ->with があって違いが分からなかった
with()はcontrollerからviewへ値を渡している
redirect()->with
PutController.php
return redirect()
->route('tweets.update.index', ['id' => $tweet->id])
->with('feedback.success', 'つぶやきを編集しました');
redirect()は、RedirectResponsクラスのヘルパ関数
→へルパ関数とは、laravelに搭載されている独自の関数(内部的にphpの関数を実行している)
RedirectResponseクラスにwith関数があった
/vendor/laravel/framework/src/illuminate/Http/RedirectResponse.php
public function with($key, $value = null)
{
$key = is_array($key) ? $key : [$key => $value];
foreach ($key as $k => $v) {
$this->session->**flash($k, $v)**;
}
return $this;
}
flashメソッドが使用されている(データを一時的に保存するメソッド)
引数の $ kと $vはキーと値の関係になっているので、
ビューのsession()の引数にキー書くと、値が渡される
{{ session('feedback.success') }}
=> 'つぶやきを編集しました'
○データの一時保存
flash()はsesionクラスのメソッド
- flashメソッドを使用して保存されたデータは、即時および後続のHTTPリクエスト中に利用可能
- 後続のHTTPリクエストの後、一時保存したデータは削除される。
- 持続保存の必要がないステータスメッセージで使える
$request->session()->flash('status', 'Task was successful!');
redirect関数内のwithメソッド=flashメソッド
と思って良いのでしょうか
view()->with
IndexController.php
return view('tweets.update.index')
->with('tweet', $tweet);
->with('htmlの変数名', $コントローラで定義した変数名);
/vendor/laravel/framework/src/illuminate/View/View.php
public function with($key, $value = null)
{
if (is_array($key)) {
$this->data = array_merge($this->data, $key);
} else {
$this->data[$key] = $value;
}
return $this;
}
へルパ関数
$callback = function ($value) {
return is_numeric($value) ? $value * 2 : 0;
};
array_merge(配列, 配列, 配列・・・)
配列の後ろに配列を追加(結合)できる
中身はよく分からなかったけど変数を渡せる。
Discussion