【问题标题】:How can I return properly an array value in blade laravel view如何在刀片 laravel 视图中正确返回数组值
【发布时间】:2019-09-28 02:34:19
【问题描述】:

我正在为 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'
]

【问题讨论】:

  • 我的建议,任何逻辑都应该在控制器中进行,然后再传递给刀片。如果要在刀片中使用,请使用 @php //your logic @endphp['runninghours' => !$equipment->has_running_hours ? null : 'runninghours']
  • 为什么不在刀片中创建数组然后将此数组添加到 @include 部分
  • @php 现在做到了,但我将把它重写到控制器中,因为这会使代码看起来很糟糕。

标签: php arrays laravel laravel-blade


【解决方案1】:

为什么你不先用@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)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-17
    • 1970-01-01
    • 2019-03-18
    • 2018-08-01
    • 2017-11-15
    • 2020-10-10
    • 1970-01-01
    相关资源
    最近更新 更多