が、私は私の更新方法で交差しています文句を言わない交差しています。何でもうまく動作します(偽、1など)Laravelは入力
ヒント?
ありがとうございます!別の実装に移動してintersect()
方法を使用して停止する
が、私は私の更新方法で交差しています文句を言わない交差しています。何でもうまく動作します(偽、1など)Laravelは入力
ヒント?
ありがとうございます!別の実装に移動してintersect()
方法を使用して停止する
ALERT てみてください、それはLaravelの将来のバージョンから削除されます:あなたはis_read
キーは、最終的な配列(から欠落していることを意味したIF Link
配列全体が空ではない、私のコメントを参照)、これはintersect()
メソッドの実装のためです。
intersect
メソッドは、Illuminate\Http\Request
クラスのonly()
メソッドを単にラップし、結果としてarray_filter
を実行します。
これは実装です:$results
が
STEP1
$results = $request->only('message','name','email','is_read');
:あなたのケースでは
/**
* Intersect an array of items with the input data.
*
* @param array|mixed $keys
* @return array
*/
public function intersect($keys)
{
return array_filter($this->only(is_array($keys) ? $keys : func_get_args()));
}
、我々はこのようなコードを分解することができます
Array
(
[message] => message
[name] => name
[email] => email
[is_read] => 0
)
しかし、STEP2
STEP2で
$filteredResults = array_filter($results);
結果は
Array
(
[message] => message
[name] => name
[email] => email
)
になり、これはどのようにarray_filter
作品です。これは、配列を最初のパラメータとして、次にオプションのコールバック(配列のフィルタリングに使用)とフラグを期待します。コールバックが(この場合のように?)が提供されていない場合はどうなりphp reference
から
コールバックが指定されていない場合は、FALSEに等しい配列(converting to booleanを参照)のすべてのエントリが削除されます。
converting to booleanを見ると、0(ゼロ)はFALSEとみなされ、そのために配列から削除されます。
ありがとうございます。詳細な説明をいただきありがとうございます。私はコードを更新しました.0の代わりに、私は文字列としてfalseを返し、それをブール値falseに変換して、そのように動作します – user3844579
配列全体が空である( 'message'、' name'、 'email'のキーなし)か、' is_read'キーだけが欠落していますか? – LombaX
@LombaX on isread – user3844579