Laravel получить массив из текста в Voyager - PullRequest
0 голосов
/ 01 мая 2019

пытается сохранить текст как массив в базе данных, поэтому я пишу

  some Text
  some Text,
  some Text;
  some Text.

, и он сохраняется в базе данных как

        ["some Text\r\nsome Text,\r\nsome Text;\r\nsome Text."]

как я могу сохранить его в этом формате

        ["some Text" ,"some Text,","some Text;" , "some Text."]

есть ли перерыв или что-то еще

protected $casts = [
'array_value' => 'array',
];


public function setArrayValueAttribute($value)
{
    $this->attributes['array_value'] = json_encode($value);
}

public function getArrayValueAttribute($value)
{
    return collect(json_decode($value));
}

1 Ответ

0 голосов
/ 02 мая 2019

Вы можете просто перебить его в сеттере.

public function setArrayValueAttribute($value)
{
    $newArray = [];
    foreach($value as $item) {
        $items = explode("\r\n", $item);
        array_push($newArray, $items);
    }

    $this->attributes['array_value'] = json_encode($newArray);
}

Но это будет работать только для вашего примера использования выше. Если вы ожидаете каких-либо других типов символов новой строки, вам также придется иметь с ними дело.

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