Laravel WhereIn查询问题

时间:2014-12-28 14:55:55

标签: php mysql laravel laravel-4

这是当我从下面的查询

回显$TagDatas;

$ TagDatas = TagModel :: whereIn('TagId',explode(',',$ BlogData-> Tagged)) - > get(); echo $ TagDatas;

我正在

[{ “自动识别”:2 “TAGID”:2 “标记名”: “铬”, “TagDescription”:NULL, “CreatedAt”:NULL, “CreatedBy”:NULL, “UpdatedAt”:NULL,” UpdatedBy “:NULL,” IsDeletable “:空,” 状态 “:1},{” 自动识别 “:3”,TAGID “:3” 标记名 “:” 谷歌”, “TagDescription”:NULL, “CreatedAt”:空“CreatedBy”:NULL, “UpdatedAt”:NULL, “UpdatedBy”:NULL, “IsDeletable”:空, “状态”:1}]

但是当我尝试

echo $TagDatas->TagName;

我收到Undefined property:错误

我在做什么,我该怎么做。

注意:

我正在使用whereIn,其中查询将等于

$BlogData->Tagged i.e., It will be 2,3

所以查询将是

$TagDatas = TagModel::whereIn('TagId', array(2,3))->get();

2 个答案:

答案 0 :(得分:1)

因为$TagDatas将是集合。循环遍历它以获取各个标签:

foreach($TagDatas as $TagData){
    echo $TagData->TagName;
}

答案 1 :(得分:1)

错误很明显。

$ TagDatas是您的模型的集合。您需要遍历该集合以获取每个项目。 该集合没有属性TagName,只有它的元素(TagModel类型)具有它。

所以你应该这样做,以回应每个人的TagName。

foreach($TagDatas as $TagData){
    echo $TagData->TagName;
}