自定义刀片指令不起作用-语法错误,意外的')'

问题描述 投票:1回答:1

我正在尝试创建一个刀片指令,该指令检查用户是否已登录并且具有已激活的帐户。在我们的数据库中,我们有一个user_status列,其中0:待处理,9处于活动状态。

// AppServiceProvider.php

public function boot()
{
    Blade::directive('active', function () {
        $condition = false;

        // check if the user is authenticated
        if (Auth::check()) {
            // check if the user has a subscription
            if(auth()->user()->getStatus() == 9) {
                $condition = true;
            } else {
                $condition = false;
            }
        }

        return "<?php if ($condition) { ?>";
    });

    Blade::directive('inactive', function () {
        return "<?php } else { ?>";
    });

    Blade::directive('endactive', function () {
        return "<?php } ?>";
    });
}

// welcome.blade.php

@active
    <p>User is active</p>
@inactive
    <p>User is inactive</p>
@endactive

我已经在我的User.php模型中包含此getStatus()函数。

public function getStatus() {
    return $this->user_status;
}

我也可以使用Trait MustActivateAccount,它包括此功能:

/**
 * Determine if the user has activated account.
 *
 * @return bool
 */
public function hasActivatedAccount()
{
    return $this->user_status == 9;
}

此刀片指令添加到页面时显示此错误:Facade \ Ignition \ Exceptions \ ViewException语法错误,意外的')'

我是否在AppServiceProvider.php文件中无法正确转义,如果在哪里以及如何转义?

laravel laravel-middleware
1个回答
0
投票

您可以在刀片服务器模板中尝试此操作

@if(Auth()->user()->user_status == 9)
    <p>User is active</p>
@else
    <p>User is inactive</p>
@endif
© www.soinside.com 2019 - 2024. All rights reserved.