在 laravel blade 指令中使用未定义常量
Use of undefined constant in laravel blade directive
在我的 blade 我有
@foreach($orders as $order)
<tr>
<td align="left" valign="top" style="padding: 5px 10px; font-size: 16px; line-height: 18px;">
@identifier_prefix($order->pickup_time)
</td>
</tr>
@endforeach
在 AppServiceProvider 中:
public function boot()
{
Blade::directive('identifier_prefix', function ($pickup_time) {
$prefix = '';
switch($pickup_time){
case '9u - 10u30':
$prefix = 'O';
break;
case '10u30 - 12u':
$prefix = 'V';
break;
case '12u - 14u30':
$prefix = 'M';
break;
case '14u30 - 17u':
$prefix = 'N';
break;
case '17u - 19u':
$prefix = 'A';
break;
default:
$prefix = 'ERROR';
break;
}
return "<?php echo $prefix; ?>";
});
}
我收到一个错误返回说
Use of undefined constant ERROR - assumed 'ERROR' (this will throw an Error in a future version of PHP)
我不是后端开发人员,所以在 php 和 blade 方面经验不多。但不明白为什么我会打印错误。甚至不是来自默认语句的字符串 'ERROR' ,而是一个实际的错误。
还有,default语句应该连正常执行都没有。。。请问这里有什么问题吗?
现在变得有趣了:我试图直接从指令中回显 $pickup_time,比如
Blade::directive('identifier_prefix', function ($pickup_time) {
$prefix = 0;
echo $pickup_time;
//other code
我得到 $order->pickup_time 作为字符串返回...
这怎么可能...尝试将所有内容放入 {} 中,不带或不带回显...尝试了所有...我迷路了。
我放弃了尝试。看起来你不能在指令中使用变量,我不敢相信......
但是对于以后遇到这个问题的其他人来说:我最后只写了就解决了:
@switch($order->pickup_time)
@case('9u - 10u30')
O
@break
@case('10u30 - 12u')
V
@break
@case('12u - 14u30')
M
@break
@case('14u30 - 17u')
N
@break
@case('17u - 19u')
A
@break
@default
<span style="color: red;">Something went wrong</span>
@endswitch
...并且不使用指令
在我的 blade 我有
@foreach($orders as $order)
<tr>
<td align="left" valign="top" style="padding: 5px 10px; font-size: 16px; line-height: 18px;">
@identifier_prefix($order->pickup_time)
</td>
</tr>
@endforeach
在 AppServiceProvider 中:
public function boot()
{
Blade::directive('identifier_prefix', function ($pickup_time) {
$prefix = '';
switch($pickup_time){
case '9u - 10u30':
$prefix = 'O';
break;
case '10u30 - 12u':
$prefix = 'V';
break;
case '12u - 14u30':
$prefix = 'M';
break;
case '14u30 - 17u':
$prefix = 'N';
break;
case '17u - 19u':
$prefix = 'A';
break;
default:
$prefix = 'ERROR';
break;
}
return "<?php echo $prefix; ?>";
});
}
我收到一个错误返回说
Use of undefined constant ERROR - assumed 'ERROR' (this will throw an Error in a future version of PHP)
我不是后端开发人员,所以在 php 和 blade 方面经验不多。但不明白为什么我会打印错误。甚至不是来自默认语句的字符串 'ERROR' ,而是一个实际的错误。 还有,default语句应该连正常执行都没有。。。请问这里有什么问题吗?
现在变得有趣了:我试图直接从指令中回显 $pickup_time,比如
Blade::directive('identifier_prefix', function ($pickup_time) {
$prefix = 0;
echo $pickup_time;
//other code
我得到 $order->pickup_time 作为字符串返回...
这怎么可能...尝试将所有内容放入 {} 中,不带或不带回显...尝试了所有...我迷路了。
我放弃了尝试。看起来你不能在指令中使用变量,我不敢相信...... 但是对于以后遇到这个问题的其他人来说:我最后只写了就解决了:
@switch($order->pickup_time)
@case('9u - 10u30')
O
@break
@case('10u30 - 12u')
V
@break
@case('12u - 14u30')
M
@break
@case('14u30 - 17u')
N
@break
@case('17u - 19u')
A
@break
@default
<span style="color: red;">Something went wrong</span>
@endswitch
...并且不使用指令