Доступ к данным в пользовательской директиве Blade :: if - PullRequest
0 голосов
/ 22 июня 2019

Предположим, у меня есть пользовательская директива if blade, где я хочу проверить, существует ли переменная в представлении

class AppServiceProvider extends ServiceProvider
{
    public function boot()
    {
        Blade::if("exists", function() {
            return isset($model);
        });
    }
}

В настоящее время выражение isset($model) проверит переменную $model в контекстеAppServiceProvider

Несмотря на то, что я мог просто пропустить модель и затем выполнить ckeck, я специально ищу решение, не пропуская ничего

Как я могу получить директиву длябыть оценены в контексте в представлении, или как можно получить данные, которые были переданы в представление?

View пример:

<button type="submit">
@exists
    Save
@else
    Create
@endexists
</button>

Контроллер

return view("<path/to/view>", ["model" => $model];

1 Ответ

0 голосов
/ 22 июня 2019

То, что вы сделали, просто идеально, но вы должны передать аргумент $model в директиву @exists, как показано ниже:

@exists($model)
<h1>It is there! :)</h1>
@else
<h1>It is not there! :(</h1>
@endexists

и вы должны передать $model в качестве аргумента вашей новой директиве

class AppServiceProvider extends ServiceProvider
{
    public function boot()
    {
        Blade::if("exists", function($model) {
            return isset($model);
        });
    }
}

для получения дополнительной информации по этому вопросу, пожалуйста, отметьте Пользовательские заявления в документации по laravel

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...