Laravel Расширить класс из пакета - PullRequest
0 голосов
/ 12 июня 2019

Я использую последнюю версию пакета.

Я расширил пакет для отображения сообщений об ошибках, таких как: App\GlobalIt\Html.php

namespace App\Acme\Html;

use Spatie\Html\Html as SpatieHtml;

class Html extends SpatieHtml
{

    public function text($name = null, $value = null)
    {
        $errorMessage = "Test";

        if ($errorMessage) {
            return $this->input('text', $name, $value)->class('is-invalid')->addChild(html()->div($errorMessage)->class('invalid-feedback'));
       }

       return $this->input('text', $name, $value);
   }

Ниже указан поставщик услуг HtmlServiceProvider.php

namespace App\Acme\Html;

use Illuminate\Support\ServiceProvider;
use Spatie\Html\Html as SpatieHtml;

class HtmlServiceProvider extends ServiceProvider
{

    public function register()
    {
        $this->app->bind(SpatieHtml::class, Html::class);
    }
}

Когда я использую это с modelForm, значение model всегда равно нулю.

{{ html()->form('POST', route('frontend.register.step2'))->open() }}

{{ html()->text('colour') }}

Это прекрасно работает и отображает класс ошибок, если таковые имеются при отправке.

Следующее не заполняет значения модели

{{ html()->modelForm($userDetail,'PATCH', route('frontend.register.edit.details',$userDetail))->open() }}

{{ html()->text('colour') }}

Что я здесь не так делаю?

Я думаю, что здесь проблема с пакетом Spatie/Html, регистрирующим функцию 'html'который я не знаю, как переопределить.

use Spatie\Html\Html;

if (! function_exists('html')) {
    /**
     * @return \Spatie\Html\Html
     */
    function html()
    {
        return app(Html::class);
    }
}

Как я могу переопределить или переопределить эту функцию, чтобы она указывала на мой html класс?

Спасибо

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