Я использую последнюю версию пакета.
Я расширил пакет для отображения сообщений об ошибках, таких как: 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
класс?
Спасибо