2014-12-28 5 views
0

Вот когда я эхо $TagDatas; из приведенного ниже запросаLaravel, где Запрос Issue

$ TagDatas = TagModel :: где ('TagID', взрываются ('', $ BlogData-> меткой)) -> получить (); echo $ TagDatas;

Я получаю

[{ "AutoID": 2, "код TagId": 2, "TagName": "хром", "TagDescription": нулевой, "CreatedAt": нулевой, "CreatedBy": нулевая , "UpdatedAt": NULL, "UpdatedBy": NULL, "IsDeletable": NULL, "Статус": 1}, { "AutoID": 3, "TagID": 3, "TagName": "Google", "TagDescription" : нулевой, "CreatedAt": нулевой, "CreatedBy": нулевой, "UpdatedAt": нулевой, "UpdatedBy": нулевой, "IsDeletable": нулевой, "Статус": 1}]

Но когда я пытаюсь

echo $TagDatas->TagName; 

Я получаю Undefined property: Ошибка

Какая ошибка я делаю и как я могу это сделать.

Примечание:

Я использую, где, когда запрос будет равен

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

Таким образом, запрос будет

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

ответ

1

Ошибка очевидна.

$ TagDatas - это коллекция вашей модели. Вам нужно пройти через эту коллекцию, чтобы получить каждый элемент. В коллекции нет атрибута TagName, только его элементы (которые имеют тип TagModel) имеют его.

Итак, вы должны сделать это вместо того, чтобы вызывать TagName каждого из них.

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

$TagDatas Потому что будет коллекция. Перейдите к нему, чтобы получить отдельные теги:

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