php・Laravelメモ
phpの条件分岐
$hogeに値が入っているかどうか
if ($hoge) {
<!-- 値が入っている時の処理 -->
} else {
<!-- 値が入っていないとき(null)の処理 -->
}
追記:Laravelの場合
@if ($value)
// trueだった場合の表示
@elseif ($value02)
// 違う条件の場合で true だった場合の表示
@else
// 当てはまらなかった場合の表示
@endif
[WIP] The DELETE method is not supported for this route. Supported methods: GET, HEAD, POSTの解決
こちらはまだ編集中です。(理解がまだできていない?)
- フォームが別のフォーム内にないことを確認
foreachの書き方
@foreach (配列名 as 要素)
処理
@endforeach
以下、例です。
※実際にLaravelで使う場合は、@foreach、@endforeachの必要あり
$fruits = ['apple', 'banana', 'orange', 'strawberry', 'pineapple'];
foreach ($fruits as $value) {
echo $value."<br>";
}
参考:
Property ○○ does not exist on this collection instance の解決法
複数なのに、単体で変数を使おうとしていると出るエラー。
きちんとforeachなどを使って呼び出すことで、エラーは消える。
@csrf
とは?
introductionの翻訳が以下です。
クロスサイトリクエストフォージェリーは、認証されたユーザーの代わりに不正なコマンドが実行される悪意のあるエクスプロイトの一種です。ありがたいことに、Laravelはクロスサイトリクエストフォージェリ(CSRF)攻撃からアプリケーションを簡単に保護することができます。
引用元:
日本語で書かれているQiita
「SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry…というエラー
データベースに一意性制約が違反されたことを示しています。
このサイトで、解説されていそうでした。
issetとは?
変数がセットされているかを調べます。
これは変数が宣言されており、 null とは異なる値だということです。
[WIP] Undefined variable $hoge
Laravelで、Controllerに新たな以下のようなコードを追加したところ、Undefined variable $hogeというエラーが出ました。
YYY,XXXにはそれぞれ変数と、Viewが入ります。
elseif(YYY != Null){
return view('XXX');
}
なお、Viewをとあるindex.blade.phpに指定すると、エラーが出ないので、どこかで値渡しをしていない可能性があります。
原因は??
Viewのblade.phpファイルで、定義していない変数を使っていたことが原因。
return view('XXX')->with('hoge', $hoge);
によって、値を渡すことによって、解決できました。
もしくは、例$user = auth()->user()
のように直接値をbladeファイルで書くことによっても解決できました。
※今回はuserテーブルにある変数だったため。
Laravelの認証機能については、以下がわかりやすかったです。
filer関数とは?
The filter method filters the collection using the given callback, keeping only those items that pass a given truth test:
翻訳:filter メソッドは、指定されたコールバックを使用してコレクションをフィルタリングし、指定された真理テストに合格した項目のみを保持します:
$collection = collect([1, 2, 3, 4]);
$filtered = $collection->filter(function (int $value, int $key) {
return $value > 2;
});
$filtered->all();
// [3, 4]
If no callback is supplied, all entries of the collection that are equivalent to false will be removed:
コールバックが与えられない場合、falseと等価なコレクションのエントリはすべて削除される:
$collection = collect([1, 2, 3, null, false, '', 0, []]);
$collection->filter()->all();
// [1, 2, 3]
For the inverse of filter, see the reject method.