Как я могу правильно вернуть значение массива в представлении лезвия Laravel - PullRequest
0 голосов
/ 10 мая 2019

Я использую компонент Таблицы базы данных для Laravel, однако я хочу сделать проверку в блейд-представлении, но, похоже, не могу найти лучший подход для этого. Поскольку массив создается в представлении, а не в контроллере.

У меня есть массив и значение объекта. И если это значение объекта истинно, оно должно представить дополнительную строку в массиве.

У меня есть следующее: "title" => "view_template"

Я хочу произвести следующее:

[
    'sometitle1' => 'someview1',
    'sometitle2' => 'someview2', //this part needs if statement is true
    'sometitle3' => 'someview3'
]

Я думаю о чем-то подобном

[
    'sometitle1' => 'someview1',
    ($obj->has_this_field) ? ['sometitle2' => 'someview2']:
    'sometitle3' => 'someview3'
]

Но это явно не так. Я обычно решаю это с array_push в контроллере. Что было бы лучшим подходом, так как это в виде лезвия.

Я тоже пробовал это

[
    'sometitle1' => 'someview1',
    ($obj->has_this_field) ? ['sometitle2' => 'someview2']:
    'sometitle3' => 'someview3'
]

И это, очевидно, не будет работать

[
    'sometitle1' => 'someview1',
    ($obj->has_this_field) ? 'sometitle2' => 'someview2':
    'sometitle3' => 'someview3'
]



@include('partials.panel', [
    'header' => trans('general.information'),
    'partial' => 'partials.show-tabs',
        'partialData' => [
            'root' => 'equipment.equipment.panels',
            'tabs' => [
                'general' => 'general',
                'advanced' => 'maintenance',
                (!$equipment->has_running_hours) ? ['runninghours' => 'runninghours']:
                'history' => 'history',
            ]
        ]
    ])

Это то, что я хочу произвести

[
    'general' => 'general',
    'runninghours' => 'runninghours',
    'history' => 'history'
]

1 Ответ

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

Почему вы сначала не создаете массив с помощью @php //your Logic @endphp, а затем передаете этот массив вашей @include части

Что-то вроде ниже.

@php
$array = [
    'header' => trans('general.information'),
    'partial' => 'partials.show-tabs',
        'partialData' => [
            'root' => 'equipment.equipment.panels',
            'tabs' => [
                'general' => 'general',
                'advanced' => 'maintenance',
            ]
        ]
    ];
if(!$equipment->has_running_hours)
{
 $array['partialData']['tabs']['runninghours'] = 'runninghours';
}
else
{
 $array['partialData']['tabs']['history'] = 'history';
}

    @endphp

Теперь передайте это вашему@ include

@include('partials.panel',$array)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...