【发布时间】: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