Ошибка при передаче параметра в компонент - PullRequest
0 голосов
/ 22 апреля 2020

Чтение, как сделать компоненты здесь https://laravel.com/docs/7.x/blade#components в моем приложении Laravel Framework 7.6.2 Я получил ошибку:

Unresolvable dependency resolving [Parameter #0 [ <required> $is_auto_hide ]] in class App\View\Components\AppBackendHeader (View:

для моей первой переменной, определенной в приложении компонентов /View/Components/AppBackendHeader.php:

<?php

namespace App\View\Components;

use Illuminate\View\Component;

class AppBackendHeader extends Component
{

    public $is_auto_hide;

    public $message;
    public function __construct($is_auto_hide, $message)
    {
        $this->is_auto_hide = $is_auto_hide;
        $this->message = $message;
    }
    public function render()
    {
        return view('components.app-backend-header');
    }
}


calling this component from blade page : 
        <x-app-backend-header is_auto_hide="true" message="message 1234" />


In app/Providers/AppServiceProvider.php I added line :

    public function boot()
    {
        Blade::component('app-backend-header', AppBackendHeader::class);
...

При вызове шаблона я передаю параметр is_auto_hide, и он не выглядит как опечатка ...

Я пытался запускать команды:

$ composer dump-autoload 
$ php artisan view:clear
$ php artisan config:cache

и это не помогло ... В чем проблема?

Спасибо!

1 Ответ

2 голосов
/ 22 апреля 2020

В соответствии с документацией :

Аргументы конструктора компонента должны указываться с использованием camelCase, тогда как kebab-case должен использоваться при обращении к именам аргументов в атрибутах HTML ,

Это означает, что вам нужно:

public function __construct($isAutoHide, $message)
{
    $this->is_auto_hide = $isAutoHide;
    $this->message = $message;
}

, и вы должны ссылаться на него как:

 <x-app-backend-header is-auto-hide="true" message="message 1234" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...