laravel访问刀片中的模型常量

时间:2017-11-13 18:14:20

标签: laravel templates model-view-controller blade models

需要刀片中的访问模型常量而不是完整路径

类PaymentMethod扩展了Model {

const PAYPAL_ACCOUNT      = 'paypal_account';
const CREDIT_CARD         = 'credit_card';

和刀片

        {{ App\Classes\Models\PaymentMethod::CREDIT_CARD }}

工作

但是

        {{ PaymentMethod::CREDIT_CARD }}

抛出Class' PaymentMethod'找不到

3 个答案:

答案 0 :(得分:10)

您可以使用别名:

config\app.php下的aliases部分

aliases => [
     ....
    'PaymentMethod' => App\Classes\Models\PaymentMethod::class
]

然后在你的balde文件中使用它

{{ PaymentMethod::CREDIT_CARD }}

答案 1 :(得分:0)

在尝试解决同一问题时找到了该线程。决定采用以下方法:

namespace App\Services\Auth\IAM;

class IAMConstants
{
    const GUARD_WEB = 'web';
    const GUARD_ADMIN = 'admin';
}

然后在Blade中:

@inject('constants', 'App\Services\Auth\IAM\IAMConstants')
...
<option value="{{ $constants::GUARD_WEB }}">App user</option>

注入的类应该很小,因为它将包含所有依赖项: https://laravel.com/docs/5.4/blade#service-injection

答案 2 :(得分:0)

只需尝试

#include <string>
#include <iostream>
#include "func.hpp"

using namespace std;

int main(int argc, char **argv)
{
        if(argc <3)
        {
          printf("\n %s IP PORT\n",argv[0]);
          printf("e.g. %s 10.32.129.77 6379\n",argv[0]);
          printf("\n Going to run on the default server and port\n");
          string command{argv[0]};
          command+=" 10.32.129.77 6379";
          printf("\nCommand: %s\n",command.c_str());
          system(command.c_str());
          exit(0);
        }

func();
}

假设{{ trans('lang.LANG_CONST_NAME') }} 文件存在于资源中的lang.php文件夹下。例如,在我的情况下,lang