Laravel 5 Константа определения - PullRequest
0 голосов
/ 09 мая 2018

Я перепробовал все варианты. Тем не менее, он показывает «Константа выражение содержит недопустимые операции». Я использую Laravel 5.5, пожалуйста, помогите. Мне нужно определить имя таблицы в константе и использовать его в Model.

Я написал в модели:

protected $table = Config::get('constants.dbTable.EMAILTEMPLATE');

А в constant.php внутри Config:

return [ 'langs' => 
    [ 
        'es' => 'www.domain.es', 
        'en' => 'www.domain.us' // etc 
    ], 
    'siteTitle' => 'HD Site', 
    'pagination' => 5, 
    'tagLine' => 'Do the best', 
    'dbTable'=>[ 
        'EMAILTEMPLATE' => 'stmd_emailTemplate'
    ] 
];

Я хочу использовать emailTemplate таблицу.

1 Ответ

0 голосов
/ 09 мая 2018

Исходя из кода, который вы разместили в комментарии, вы пытаетесь присвоить значение свойству в вашей модели, но вы назначаете его слишком рано (предполагается из ключевого слова protected.) Вы не можете сделать это :

class SomeModel extends Model
{
    protected $someProperty = config('some.value'); // Too early!
}

потому что вы пытаетесь инициализировать свойство, которое требует интерпретации во время выполнения.

Есть обходной путь; используйте свой конструктор.

class SomeModel extends Model
{
    protected $someProperty; // Define only...

    public function __construct() {
        parent::__construct(); // Don't forget this, you'll never know what's being done in the constructor of the parent class you extended
        $this->someProperty = config('some.value');
    }
}
...