sha*_*rgy 1 arrays collections contains laravel
为什么这段代码每次都返回false?
$lics = collect(['lic100' => auth()->user()->lic100, 'lic250' => auth()->user()->lic250, 'lic500' => auth()->user()->lic500]);
$licsowned = $lics->filter()->keys();
$haslicense = property_exists($licsowned, $data['lictype']);
Run Code Online (Sandbox Code Playgroud)
$lics拥有:
Illuminate\Support\Collection {#367 ?
#items: array:3 [?
0 => "lic100"
1 => "lic250"
2 => "lic500"
]
}
Run Code Online (Sandbox Code Playgroud)
$data['lictype'] 有值 lic250
我也尝试过 in_array() 但它给出了错误消息,该值必须是一个数组并且我传递了一个对象。
您需要使用实例contains()方法Collection。
例如:
$collection = collect(['name' => 'Desk', 'price' => 100]);
$collection->contains('Desk');
Run Code Online (Sandbox Code Playgroud)
或者,在您的任务中:
$lics = collect(['lic100' => auth()->user()->lic100, 'lic250' => auth()->user()->lic250, 'lic500' => auth()->user()->lic500]);
$lics->contains('lic250');
Run Code Online (Sandbox Code Playgroud)
更多信息:
https://laravel.com/docs/7.x/collections#method-contains