вернуть столбец продукта из базы данных с разнесенным столбцом - PullRequest
0 голосов
/ 24 января 2019

Привет всем в моей таблице Продуктов. У меня есть product_properties, которые должны возвращаться в виде массива с другими столбцами, которые я могу сделать

$Product = Product::find(33);
$properties = explode(",", ($Product ->product_properties));

, но я получу product_properties в виде массива, но не будет возвращать другие столбцы продуктов https://prnt.sc/mbp3tk все, что мне нужно, это вернуть product_properties в виде массива с другими столбцами, как на изображении https://prnt.sc/mbp2yh, но на изображении product_properties не является массивом

Ответы [ 2 ]

0 голосов
/ 24 января 2019

Предполагая, что product_properties - это массив перед сохранением его в базе данных, вы можете просто использовать свойство $ casts для модели:

$casts = ['product_properties' => 'array'];

Это будет означать, что вы можете установить product_properties для модели в виде массива, и она преобразует ее в JSON для хранения в базе данных, а затем, когда вы перейдете к свойству модели, это будет массив, например

$product->product_properties = ['foo', 'bar'];
$product->save();

В качестве альтернативы, если вы просто хотите изменить свойство в модели, но не хотите, чтобы Eloquent преобразовал его для сохранения в базе данных, вы можете использовать accessor вместо этого:

public function  getProductPropertiesAttribute($properties)
{
    return explode(',', $properties);
}
0 голосов
/ 24 января 2019

Ну, мне кажется, что это объект JSON.Вы пытались закодировать / декодировать его как объект JSON? Проверьте документацию, если хотите

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...