那不是in_array()
工作原理。您的数组包含对象,而对象是包含用户ID的事物。in_array()
将检查数组的确切元素,而不检查元素的属性(在这种情况下为对象)。
它做这样的事情:
$isLikedUser = false;
foreach ($likedUsers as $likedUser) {
if ($likedUser == Auth::id()) {
$isLikedUser = true;
}
}
但是你需要这个:
$isLikedUser = false;
foreach ($likedUsers as $likedUser) {
if ($likedUser->user_id == Auth::id()) {
$isLikedUser = true;
}
}
您应该在控制器中执行此操作,然后可以将结果传递给视图,如下所示:
$view = View::make('viewname')->with('isLikedUser', $isLikedUser);
请注意,使用with()
函数时,不必为视图变量使用相同的名称,例如:->with('variableNameInView', $usedVariableValue);
然后,您的视图将具有一个变量,该变量具有您可以检查的第一个参数的名称:
@if ($isLikedUser)
<p>yes</p>
@endif
<?php echo Auth::id() ?>
<?php dd($likedUsers) ?>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句