【发布时间】:2020-08-28 04:23:36
【问题描述】:
在我的刀片中,我有
@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 和刀片没有太多经验。但不明白为什么我会打印错误。甚至不是默认语句中的字符串“错误”,而是一个实际错误。 另外,默认语句甚至不应该正常执行......那么这里有什么问题?
现在变得有趣了:我试图直接从指令中回显 $pickup_time
Blade::directive('identifier_prefix', function ($pickup_time) {
$prefix = 0;
echo $pickup_time;
//other code
我得到 $order->pickup_time 作为字符串返回...
这怎么可能...尝试将所有内容都放在 {} 中,没有或有和 echo...尝试了所有内容...我迷路了。
【问题讨论】:
-
您的代码中是否曾经有过
$prefix = ERROR;?进行更改后您是否运行php artisan view:clear? (由于您删除了其他问题,因此无法阅读有关其他问题的任何 cmets) -
这个问题扩展了之前的问题,所以我删除了它。我运行 php artisan view:clear 每次我改变一些东西,$prefix 从来没有在其他任何地方使用过......
-
把它改成简单的
return $prefix;能用吗? -
另外,删除开关的默认语句,我得到一个“语法错误,意外';' " 指刀片文件中的@identifier_prefix($order->pickup_time)...
-
你需要将其作为字符串回显,使用
return "<?php echo \"{$prefix}\" ?>";
标签: laravel switch-statement laravel-blade directive