我不知道任何包,但我只会创建自己的宏类,类似于 HTML builder 或 Form builder。
事实上,我可能会扩展FormBuilder.php
并添加一些额外的方法,例如:
public function inputWithError($type, $name, $errors, $value = null, $options = array())
{
$errorString = '';
if(isset($errors[$name])) {
$errorString = '<div class="error">{$errors[$name]}</div>';
}
return $this->input($type, $name, $value, $options) . $errorString;
}
注意FormBuilder 包可以在这里找到
编辑
一个目录可能是:
/App/App/ExtendedInput
|
+- ExtendedInput.php
|
+- ExtendedInputFacade.php
|
+- ExtendedInputServiceProvider.php
扩展输入.php
use Illuminate\Html\FormBuilder;
class ExtendedInput extends FormBuilder
{
public function inputWithError($type, $name, $errors, $value = null, $options = array())
{
$errorString = '';
if(isset($errors[$name])) {
$errorString = '<div class="error">{$errors[$name]}</div>';
}
return $this->input($type, $name, $value, $options) . $errorString;
}
}
ExtendedInputFacade.php
use Illuminate\Support\Facades\Facade;
class ExtendedInputFacade extends Facade {
protected static function getFacadeAccessor() { return 'extendedInput'; }
}
ExtendedInputServiceProvider.php
use Illuminate\Support\ServiceProvider;
class ExtendedInputServiceProvider extends ServiceProvider {
public function register()
{
$this->app->bind('ExtendedInput', function()
{
return new ExtendedInput;
});
}
}
配置/app.php
'providers' => [
'App\App\ExtendedInput\ExtendedInputServiceProvider',
// ..
],