Форма макросов в Laravel - PullRequest
       2

Форма макросов в Laravel

0 голосов
/ 12 декабря 2018

У меня есть приложение \ Services \ Macros.php

<?php namespace App\Services;

use Collective\Html\FormBuilder;

class Macros extends FormBuilder {

    public function selectBg($name,$selected = '2', $options = array())
    {
        $list = [
            '' => 'Select One...',
            '1' => 'O+ve',
            '2' => 'O-ve',
            '3' => 'A+ve',
            '4' => 'A-ve',
        ];

        return $this->select($name, $list, $selected, $options);
    }

}

MacroServiceProvider.php включает следующий код:

<?php namespace App\Providers;

use App\Services\Macros;
use Collective\Html\HtmlServiceProvider;

/**
 * Class MacroServiceProvider
 * @package App\Providers
 */
class MacroServiceProvider extends HtmlServiceProvider {

    public function register()
    {
        parent::register();
        $this->app->singleton('form', function ($app) {
            $form = new Macros($app['html'], $app['url'], $app['view'], $app['session.store']->token());
            return $form->setSessionStore($app['session.store']);
        });
    }

}

В форме, которую я назвал с помощью {{Form::select()}}, ноЯ получаю сообщение об ошибке:

Ошибка типа: слишком мало аргументов для функции Collective \ Html \ FormBuilder :: select (), 0 передано в E: \ xamp \ htdocs \ crud \ vendor \ laravel \framework \ src \ Illuminate \ Support \ Facades \ Facade.php в строке 221 и по крайней мере 1 ожидаемый (представление: E: \ xamp \ htdocs \ crud \ resources \ views \ newfile \ forms.blade.php)

1 Ответ

0 голосов
/ 12 декабря 2018

В вашем первом фрагменте кода, я вижу, у вас есть метод с именем selectBg.Чтобы это работало, вы должны вызвать его, используя {{ Form::selectBg() }} вместо {{ Form::select() }}.

Поскольку вы используете параметры, вы должны предоставить как минимум параметр $name, чтобы он стал

{{ Form::selectBg('the name for the $name parameter') }}

Если у вас есть больше параметров (которые вы делаете: строка, число и массив), добавьте их соответственно, например:

{{ Form::selectBg('the name', 2, ['foo', 'bar']) }}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...