Laravel从Package

时间:2019-06-12 06:33:54

标签: php laravel

我正在使用该软件包的最新版本。

我已经扩展了软件包以显示错误消息,例如遵循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);
    }
}

当我将modelFormmodel一起使用时,该值始终为空。

{{ 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类?

谢谢

0 个答案:

没有答案