Laravel将数据传递给Array(),然后检查in_array是否抛出错误
问题描述:
嗨,我正在使用Laravel,并从数据库表中提取登录的用户收藏夹。虽然我看到的是我从CMS API获取的文章,但我也在提取已登录的用户收藏夹,但我想检查用户是否已经赞成这篇文章,但是获取了收藏夹并检查UID是否存在在数组中,如果是这样,我会输出一个不同的样式图标。所以,我想我会通过我的数据作为一个数组,然后使用PHP函数in_array
但是我得到这个错误:Laravel将数据传递给Array(),然后检查in_array是否抛出错误
Argument 1 passed to Illuminate\Database\Grammar::columnize()
must be of the type array, string given
这是怎么了检索我的数据:
//fetch article from cms
$item = $this->client->fetchPage($id);
$favourites = Auth::user()->favourites()->get("article_uid")->toArray();
,然后在我的视图
@if (in_array($item->uid, $favourites))
Already a favourite
@else
{{Form::open(['action'=>['[email protected]',$item->UID]])}}
<button type="submit" class="btn btn-danger"><span class="icon-remove-user"></span>Select Favourite</button>
{{Form::close()}}
@endif
我的阵列被输出为这样:
array(3) {
[0] = > array(6) {
["id"] = > string(1)"1" ["user_id"] = > string(1)"1" ["article_uid"] = > string(14)"testb" ["deleted_at"] = > NULL["created_at"] = > string(20)"-0001-11-30 00:00:00" ["updated_at"] = > string(20)"-0001-11-30 00:00:00"
}[1] = > array(6) {
["id"] = > string(1)"2" ["user_id"] = > string(1)"1" ["article_uid"] = > string(6)"test" ["deleted_at"] = > NULL["created_at"] = > string(20)"-0001-11-30 00:00:00" ["updated_at"] = > string(20)"-0001-11-30 00:00:00"
}[2] = > array(6) {
["id"] = > string(1)"3" ["user_id"] = > string(1)"1" ["aritlce_uid"] = > string(18)"testb" ["deleted_at"] = > NULL["created_at"] = > string(19)"2015-02-08 11:25:32" ["updated_at"] = > string(19)"2015-02-08 11:25:32"
}
}
理想情况下,我想检查article_uid
$favourites
阵列中的$item->uid
。然而,我得到这个错误,我不知道我做错了什么,我认为它是因为我的数组比PHP.net上的标准文档更复杂。在将其传递给视图或其他方法之前,我需要简化它吗?有任何想法吗?
答
如果你只需要ID作为一个数组,使用lists()
:
$favourites = Auth::user()->favourites()->lists("article_uid");
通过您收到的错误是由你传递一个字符串get()
造成的事实的方式。需要传递的阵列(即使它只是一列):
$favourites = Auth::user()->favourites()->get(["article_uid"])->toArray();
感谢,这解决了错误和阵列阵列输出作为这样:'阵列(3){[0] =>串(14) “testb”[1] => string(6)“testb”[2] => string(18)“testc”}'我没有改变'in_array'方法,但仍然会输出add favorite按钮事件在数组中 – 001221 2015-02-08 12:03:33
你能回显'$ item-> uid'以确保它保持正确的值吗? – lukasgeiter 2015-02-08 12:05:40
啊应该是$ item-> UID。谢谢! – 001221 2015-02-08 12:08:32