У меня есть модель с именем CroppedDocumentField
, у которой ниже $casts
setup:
protected $casts = [
'content' => 'array'
];
Миграция выглядит следующим образом:
Schema::create('cropped_document_fields', function(Blueprint $table){
$table->increments('id');
$table->unsignedInteger('document_id');
$table->json('content')->nullable();
});
В моей базе данных контентКажется, что столбец хранится в виде строки:
"{\"1\": [{\"row\": \"Bill Tc\\n\"}, {\"row\": \"Nathar\\n\"}, {\"row\": \"75839\\n\"}]}"
Если я повторю это:
$document = CroppedDocumentField::Find(56);
dd(is_array($document->content));
Это возвращает ложь.
Когда я вставляю JSON в мойбазу данных, я читаю его из файла .txt, который содержит строку JSON:
{"1": [{"row": "Bill Tc\n"}, {"row": "Nathar\n"}, {"row": "75839\n"}]}
Затем я вставляю это:
$file = "mytext.txt";
$content = file_get_contents($file);
//Add the text content
$this->document->cropped()->create([
'content' => $content
]);
В моей модели документа у меня просто есть связьк CroppedDocumentField
модели:
//Document.php:
public function cropped()
{
return $this->hasMany(CroppedDocumentField::class);
}
Что я здесь не так делаю?