Laravel показать данные по виду блейда из таблицы mysql - PullRequest
0 голосов
/ 19 апреля 2020

Я просто попытаюсь визуализировать данные таблицы mysql, заполненной заводским фейкером fzaninotto.

Это мой заводской файл:

$factory->define(Boat::class, function (Faker $faker) {
return [

        'name'=> $faker -> name,
        'images' => json_encode(["description" => $faker->sentence($nbWords = 2, $variableNbWords = true),
                                 "url" => $faker->imageUrl($width = 800, $height = 600, 'cats', true, 'Faker', true),
                                 "sortOrder" => $faker->randomDigitNotNull] 
                               ),

];

Это схема для Миграция:

public function up()
{
    Schema::create('boats', function (Blueprint $table) {
        $table->id();
        $table->string('name');
        $table->json('images');
        $table->timestamps();
    });

Функция Cotroller:

public function listBoats()
{
    $data = Boat::all();
    return view('frontendViews.listBoats',['data'=>$data]);
}

Теперь я могу получить доступ к данным с {{$ boat-> name}} для получения имени лодки, но как я могу получить URL для sr c ссылка на изображения?

    'name'=> $faker -> name,
'images' => json_encode(["description" => $faker->sentence($nbWords = 2, $variableNbWords = true),
                                     "url" => $faker->imageUrl($width = 800, $height = 600, 'cats', true, 'Faker', true),
                                     "sortOrder" => $faker->randomDigitNotNull] 
                                   ),

Спасибо

1 Ответ

0 голосов
/ 19 апреля 2020

Поскольку вы используете {{ $boat->name }} для доступа к имени, вы можете использовать {{ $boat->images }} для доступа к отформатированной строке JSON изображения

Поскольку изображения хранятся в базе данных в JSON формат (как вы описали), то строка в формате JSON должна выглядеть следующим образом:

{
  "description" : "this is the image of a car",
  "url" : "https://somewhere.com/img/car.png",
  "sortOrder" : 1
}

Чтобы получить доступ к URL, вам нужно «декодировать» / «десериализовать» / «анализировать» JSON, а затем взять ключ / свойство "URL"

В нативном PHP вы делаете JSON сериализацию и десериализацию с json_encode() и json_decode()

Поэтому , чтобы получить URL изображения: {{ json_decode($boat->images, true)["url"] }}

Если вам нужна ссылка о формате JSON:

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