未加括号的`a吗? b:c? d:e`已过时。使用`(a?b:c)? d:e`或`a? b:(c?d:e)`

时间:2020-07-11 19:14:53

标签: php laravel-6

嗨,我被此错误消息困扰。我尝试用括号将其封装,但在此特定行上仍然出现错误。

<div class="form-group">
 {!! Form::label('parent_id','Parent') !!}
 {!! General::selectMultiLevel('parent_id', $categories, ['class' => 'form-control', 'selected' => !empty(old('parent_id')) ? old('parent_id') : !empty($category['parent_id']) ? $category['parent_id'] : '', 'placeholder'=>'---Chose Category---' ]) !!}

2 个答案:

答案 0 :(得分:1)

使用old('parent_id') ?? $category['parent_id'] ?? ''

 {!! General::selectMultiLevel('parent_id', $categories, ['class' => 'form-control', 'selected' => old('parent_id') ?? $category['parent_id'] ?? '', 'placeholder'=>'---Chose Category---' ]) !!}

答案 1 :(得分:1)

此问题是由于嵌套的三元组造成的,在我看来,这非常难以阅读!

如消息所言,避免在括号中没有强制优先级的嵌套三进制。

根据您的代码:

{!! General::selectMultiLevel('parent_id', $categories, [
'class' => 'form-control', 
'selected' => !empty(old('parent_id')) ? old('parent_id') : !empty($category['parent_id']) ? $category['parent_id'] : '', 
'placeholder'=>'---Chose Category---' ]) 
!!}

问题出在“选定”键之内。替换

!empty(old('parent_id')) ? old('parent_id') : !empty($category['parent_id']) ? $category['parent_id'] : ''

使用

!empty(old('parent_id')) ? old('parent_id') : (!empty($category['parent_id']) ? $category['parent_id'] : '')

请注意第一个括号后的附加括号:

但也许考虑对嵌套块使用完整的if语句以提高可读性。

相关问题