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

Привет всем, что мне нужно, чтобы получить продукт из базы данных и разбить его на одну строку кода. Таким образом, я могу получить данные о продукте и получить product_properties в виде массива вместе

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

Ответы [ 2 ]

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

Вы можете просто взорвать product_properties, чтобы получить массив, или вы также можете определить аксессор в вашей Product модели.

Итак, в App\Product добавьте следующее:

public function getPropertiesAttribute()
{
    return explode(',', $this->product_properties); 
}

Вот и все.Теперь каждый раз, когда вы извлекаете вашу модель, вы также получаете доступ к ее свойствам в формате массива, выполняя следующие действия:

$product = Product::find(33);
$product->properties; // will output product_properties in an array format

Редактировать: если вы хотите, чтобы это поле properties (вычисленное) было включенов его JSON-представлении, например, вам нужно определить его в свойстве appends в вашей модели.Например.

/**
 * The accessors to append to the model's array form.
 *
 * @var array
 */
protected $appends = ['properties'];

Вот рабочий пример .

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

Вы можете добиться этого, выполнив:

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

Но это плохо читается по сравнению с вашим первым подходом.

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