扩展 Blade 自定义指令调用总是有问题。

我是根据手册这里来写的。
Blade 模板《Laravel 6 中文文档》

我的需求是,我想自定义一个时间。
我在模版里使用了foreach ,里面有一个created_at的时间。
created_at内容是2020-07-14 09:00:00 这样的
我想输出的是2020-07-14

我在App\Providers\ServiceProvider里的boot里面定义了一个和官方例子一模一样的。

public function boot()
    {
        //
        Blade::directive('datetime', function ($expression) {
            dd($expression);
            return "<?php echo ($expression)->format('m/d/y'); ?>";
        });
    }

然后我在blade模版里调用的时候是这样的:{{@datetime($v[‘created_at’]) }}

@foreach($data as $v)
{{ @datetime($v['created_at']) }}
@endforeach

那么问题来了。我在函数方法里打印了$expression 竟然是$v[‘created_at’],并没有把时间渲染出来。为啥呢?我理想中$expression应该是2020-07-14 09:00:00

是我哪里错了吗?

好了,那有人说,你别打印他,假装看不到他,你就好了呀。然而因为是报错了,我才打印的。。。

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
leo
最佳答案
@foreach($data as $v)
    @datetime($v['created_at'])
@endforeach
3年前 评论
hackxiaoya (楼主) 3年前
小李世界 3年前
hackxiaoya (楼主) 3年前
小李世界 3年前
讨论数量: 1
leo
@foreach($data as $v)
    @datetime($v['created_at'])
@endforeach
3年前 评论
hackxiaoya (楼主) 3年前
小李世界 3年前
hackxiaoya (楼主) 3年前
小李世界 3年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!