У меня есть эта функция, которая возвращает значение в БД:
public function getMetaValue($key)
Затем я создал функцию для чтения данных в БД на основе getMetaValue
:
public function getFeatureByMeta($estate, $type)
{
$metaId = (int) $estate->getMetaValue($type);
$feature = Feature::where('id', $metaId)->first();
return $feature->name;
}
Если я сейчас вернусь:
$this->getFeatureByMeta($estate, 'stato_immobile')
Выдает
Пытается получить свойство 'name' не-объекта.
Покаесли я выкидываю ту же самую вещь, она выдает правильный результат:
dd($this->getFeatureByMeta($estate, 'stato_immobile'));
//Returns "Nuovo / In costruzione" which is the DB data `name` I need
Если я возьму функцию getFeatureByMeta
и вместо Feature::where('id', $metaId)
я жестко закодирую значение идентификатора, вышеупомянутая ошибка не отобразитсяи я получаю правильное название предмета:
public function getFeatureByMeta($estate, $type)
{
$feature = Feature::where('id', 54)->first();
return $feature->name;
}
И
public function getFeatureByMeta($estate, $type)
{
$metaId = (int) $estate->getMetaValue($type);
dd($metaId); //Returns 54
}
Если я dd($feature)
, я получаю строку, о которой говорю:
App\Feature^ {#904
//...
#attributes: array:5 [
"id" => 57
"name" => "Da ristrutturare"
"category" => "stato_immobile"
"created_at" => "2019-09-16 12:15:13"
"updated_at" => "2019-09-16 12:15:13"
]
#original: array:5 [
"id" => 57
"name" => "Da ristrutturare"
"category" => "stato_immobile"
"created_at" => "2019-09-16 12:15:13"
"updated_at" => "2019-09-16 12:15:13"
]
#changes: []
//...
}
Что может быть причиной этого?
Я сделал видео, чтобы сделать его более понятным: https://streamable.com/5nsq4