Я пытаюсь создать директиву blade-сервера, которая проверяет, вошел ли пользователь и имеет ли активированная учетная запись. В нашей базе данных у нас есть столбец 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
Я включил эту функцию getStatus () в моем User. php модель.
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 и если да, то где и как?