So I've seen this question a million times around the internet already, but my problem is slightly different.
I've created a new Laravel project and tried to use Html and Form classes. They did not exist so I did everything to include them to my project. And voila! It works... Kinda...
The classes Html and Form seem to be working. If I create a form and refresh in my browser, there's no error and the form is showing. But... PhpStorm does not recognize the classes, it keeps whining about undefined class Html and Form. With this there's the problem that the auto-complete for those classes do not work at all.
I've also included the _ide_helper.php class by 'barryvdh' (found on https://github.com/barryvdh/laravel-ide-helper) But that did not help with this problem.
I'm out of ideas, can anyone help me on this one? Would be greatly appreciated. Cheers!
This works for me, do you have your composer.json
file set up properly?
Make sure the scripts
section is set up properly and then run composer dump-autoload
.
composer.json
"scripts": {
"post-update-cmd": [
"php artisan clear-compiled",
"php artisan ide-helper:generate",
"php artisan optimize"
] ...
},
Here is what my _ide_helper.php
file looks like.
_ide_helper.php
class Form extends \Illuminate\Html\FormFacade{
/**
* Open up a new HTML form.
*
* @param array $options
* @return string
* @static
*/
public static function open($options = array()){
return \Illuminate\Html\FormBuilder::open($options);
}
/**
* Create a new model based form builder.
*
* @param mixed $model
* @param array $options
* @return string
* @static
*/
public static function model($model, $options = array()){
return \Illuminate\Html\FormBuilder::model($model, $options);
}
/**
* Set the model instance on the form builder.
*
* @param mixed $model
* @return void
* @static
*/
public static function setModel($model){
\Illuminate\Html\FormBuilder::setModel($model);
}
/**
* Close the current form.
*
* @return string
* @static
*/
public static function close(){
return \Illuminate\Html\FormBuilder::close();
}
/**
* Generate a hidden field with the current CSRF token.
*
* @return string
* @static
*/
public static function token(){
return \Illuminate\Html\FormBuilder::token();
}
/**
* Create a form label element.
*
* @param string $name
* @param string $value
* @param array $options
* @return string
* @static
*/
public static function label($name, $value = null, $options = array()){
return \Illuminate\Html\FormBuilder::label($name, $value, $options);
}
/**
* Create a form input field.
*
* @param string $type
* @param string $name
* @param string $value
* @param array $options
* @return string
* @static
*/
public static function input($type, $name, $value = null, $options = array()){
return \Illuminate\Html\FormBuilder::input($type, $name, $value, $options);
}
/**
* Create a text input field.
*
* @param string $name
* @param string $value
* @param array $options
* @return string
* @static
*/
public static function text($name, $value = null, $options = array()){
return \Illuminate\Html\FormBuilder::text($name, $value, $options);
}
/**
* Create a password input field.
*
* @param string $name
* @param array $options
* @return string
* @static
*/
public static function password($name, $options = array()){
return \Illuminate\Html\FormBuilder::password($name, $options);
}
/**
* Create a hidden input field.
*
* @param string $name
* @param string $value
* @param array $options
* @return string
* @static
*/
public static function hidden($name, $value = null, $options = array()){
return \Illuminate\Html\FormBuilder::hidden($name, $value, $options);
}
/**
* Create an e-mail input field.
*
* @param string $name
* @param string $value
* @param array $options
* @return string
* @static
*/
public static function email($name, $value = null, $options = array()){
return \Illuminate\Html\FormBuilder::email($name, $value, $options);
}
/**
* Create a url input field.
*
* @param string $name
* @param string $value
* @param array $options
* @return string
* @static
*/
public static function url($name, $value = null, $options = array()){
return \Illuminate\Html\FormBuilder::url($name, $value, $options);
}
/**
* Create a file input field.
*
* @param string $name
* @param array $options
* @return string
* @static
*/
public static function file($name, $options = array()){
return \Illuminate\Html\FormBuilder::file($name, $options);
}
/**
* Create a textarea input field.
*
* @param string $name
* @param string $value
* @param array $options
* @return string
* @static
*/
public static function textarea($name, $value = null, $options = array()){
return \Illuminate\Html\FormBuilder::textarea($name, $value, $options);
}
/**
* Create a select box field.
*
* @param string $name
* @param array $list
* @param string $selected
* @param array $options
* @return string
* @static
*/
public static function select($name, $list = array(), $selected = null, $options = array()){
return \Illuminate\Html\FormBuilder::select($name, $list, $selected, $options);
}
/**
* Create a select range field.
*
* @param string $name
* @param string $begin
* @param string $end
* @param string $selected
* @param array $options
* @return string
* @static
*/
public static function selectRange($name, $begin, $end, $selected = null, $options = array()){
return \Illuminate\Html\FormBuilder::selectRange($name, $begin, $end, $selected, $options);
}
/**
* Create a select year field.
*
* @param string $name
* @param string $begin
* @param string $end
* @param string $selected
* @param array $options
* @return string
* @static
*/
public static function selectYear(){
return \Illuminate\Html\FormBuilder::selectYear();
}
/**
* Create a select month field.
*
* @param string $name
* @param string $selected
* @param array $options
* @param string $format
* @return string
* @static
*/
public static function selectMonth($name, $selected = null, $options = array(), $format = '%B'){
return \Illuminate\Html\FormBuilder::selectMonth($name, $selected, $options, $format);
}
/**
* Get the select option for the given value.
*
* @param string $display
* @param string $value
* @param string $selected
* @return string
* @static
*/
public static function getSelectOption($display, $value, $selected){
return \Illuminate\Html\FormBuilder::getSelectOption($display, $value, $selected);
}
/**
* Create a checkbox input field.
*
* @param string $name
* @param mixed $value
* @param bool $checked
* @param array $options
* @return string
* @static
*/
public static function checkbox($name, $value = 1, $checked = null, $options = array()){
return \Illuminate\Html\FormBuilder::checkbox($name, $value, $checked, $options);
}
/**
* Create a radio button input field.
*
* @param string $name
* @param mixed $value
* @param bool $checked
* @param array $options
* @return string
* @static
*/
public static function radio($name, $value = null, $checked = null, $options = array()){
return \Illuminate\Html\FormBuilder::radio($name, $value, $checked, $options);
}
/**
* Create a HTML reset input element.
*
* @param string $value
* @param array $attributes
* @return string
* @static
*/
public static function reset($value, $attributes = array()){
return \Illuminate\Html\FormBuilder::reset($value, $attributes);
}
/**
* Create a HTML image input element.
*
* @param string $url
* @param string $name
* @param array $attributes
* @return string
* @static
*/
public static function image($url, $name = null, $attributes = array()){
return \Illuminate\Html\FormBuilder::image($url, $name, $attributes);
}
/**
* Create a submit button element.
*
* @param string $value
* @param array $options
* @return string
* @static
*/
public static function submit($value = null, $options = array()){
return \Illuminate\Html\FormBuilder::submit($value, $options);
}
/**
* Create a button element.
*
* @param string $value
* @param array $options
* @return string
* @static
*/
public static function button($value = null, $options = array()){
return \Illuminate\Html\FormBuilder::button($value, $options);
}
/**
* Get the ID attribute for a field name.
*
* @param string $name
* @param array $attributes
* @return string
* @static
*/
public static function getIdAttribute($name, $attributes){
return \Illuminate\Html\FormBuilder::getIdAttribute($name, $attributes);
}
/**
* Get the value that should be assigned to the field.
*
* @param string $name
* @param string $value
* @return string
* @static
*/
public static function getValueAttribute($name, $value = null){
return \Illuminate\Html\FormBuilder::getValueAttribute($name, $value);
}
/**
* Get a value from the session's old input.
*
* @param string $name
* @return string
* @static
*/
public static function old($name){
return \Illuminate\Html\FormBuilder::old($name);
}
/**
* Determine if the old input is empty.
*
* @return bool
* @static
*/
public static function oldInputIsEmpty(){
return \Illuminate\Html\FormBuilder::oldInputIsEmpty();
}
/**
* Get the session store implementation.
*
* @return \Illuminate\Session\Store $session
* @static
*/
public static function getSessionStore(){
return \Illuminate\Html\FormBuilder::getSessionStore();
}
/**
* Set the session store implementation.
*
* @param \Illuminate\Session\Store $session
* @return $this
* @static
*/
public static function setSessionStore($session){
return \Illuminate\Html\FormBuilder::setSessionStore($session);
}
/**
* Register a custom macro.
*
* @param string $name
* @param callable $macro
* @return void
* @static
*/
public static function macro($name, $macro){
\Illuminate\Html\FormBuilder::macro($name, $macro);
}
/**
* Checks if macro is registered.
*
* @param string $name
* @return bool
* @static
*/
public static function hasMacro($name){
return \Illuminate\Html\FormBuilder::hasMacro($name);
}
}
class Html extends \Illuminate\Html\HtmlFacade{
/**
* Convert an HTML string to entities.
*
* @param string $value
* @return string
* @static
*/
public static function entities($value){
return \Illuminate\Html\HtmlBuilder::entities($value);
}
/**
* Convert entities to HTML characters.
*
* @param string $value
* @return string
* @static
*/
public static function decode($value){
return \Illuminate\Html\HtmlBuilder::decode($value);
}
/**
* Generate a link to a JavaScript file.
*
* @param string $url
* @param array $attributes
* @param bool $secure
* @return string
* @static
*/
public static function script($url, $attributes = array(), $secure = null){
return \Illuminate\Html\HtmlBuilder::script($url, $attributes, $secure);
}
/**
* Generate a link to a CSS file.
*
* @param string $url
* @param array $attributes
* @param bool $secure
* @return string
* @static
*/
public static function style($url, $attributes = array(), $secure = null){
return \Illuminate\Html\HtmlBuilder::style($url, $attributes, $secure);
}
/**
* Generate an HTML image element.
*
* @param string $url
* @param string $alt
* @param array $attributes
* @param bool $secure
* @return string
* @static
*/
public static function image($url, $alt = null, $attributes = array(), $secure = null){
return \Illuminate\Html\HtmlBuilder::image($url, $alt, $attributes, $secure);
}
/**
* Generate a HTML link.
*
* @param string $url
* @param string $title
* @param array $attributes
* @param bool $secure
* @return string
* @static
*/
public static function link($url, $title = null, $attributes = array(), $secure = null){
return \Illuminate\Html\HtmlBuilder::link($url, $title, $attributes, $secure);
}
/**
* Generate a HTTPS HTML link.
*
* @param string $url
* @param string $title
* @param array $attributes
* @return string
* @static
*/
public static function secureLink($url, $title = null, $attributes = array()){
return \Illuminate\Html\HtmlBuilder::secureLink($url, $title, $attributes);
}
/**
* Generate a HTML link to an asset.
*
* @param string $url
* @param string $title
* @param array $attributes
* @param bool $secure
* @return string
* @static
*/
public static function linkAsset($url, $title = null, $attributes = array(), $secure = null){
return \Illuminate\Html\HtmlBuilder::linkAsset($url, $title, $attributes, $secure);
}
/**
* Generate a HTTPS HTML link to an asset.
*
* @param string $url
* @param string $title
* @param array $attributes
* @return string
* @static
*/
public static function linkSecureAsset($url, $title = null, $attributes = array()){
return \Illuminate\Html\HtmlBuilder::linkSecureAsset($url, $title, $attributes);
}
/**
* Generate a HTML link to a named route.
*
* @param string $name
* @param string $title
* @param array $parameters
* @param array $attributes
* @return string
* @static
*/
public static function linkRoute($name, $title = null, $parameters = array(), $attributes = array()){
return \Illuminate\Html\HtmlBuilder::linkRoute($name, $title, $parameters, $attributes);
}
/**
* Generate a HTML link to a controller action.
*
* @param string $action
* @param string $title
* @param array $parameters
* @param array $attributes
* @return string
* @static
*/
public static function linkAction($action, $title = null, $parameters = array(), $attributes = array()){
return \Illuminate\Html\HtmlBuilder::linkAction($action, $title, $parameters, $attributes);
}
/**
* Generate a HTML link to an email address.
*
* @param string $email
* @param string $title
* @param array $attributes
* @return string
* @static
*/
public static function mailto($email, $title = null, $attributes = array()){
return \Illuminate\Html\HtmlBuilder::mailto($email, $title, $attributes);
}
/**
* Obfuscate an e-mail address to prevent spam-bots from sniffing it.
*
* @param string $email
* @return string
* @static
*/
public static function email($email){
return \Illuminate\Html\HtmlBuilder::email($email);
}
/**
* Generate an ordered list of items.
*
* @param array $list
* @param array $attributes
* @return string
* @static
*/
public static function ol($list, $attributes = array()){
return \Illuminate\Html\HtmlBuilder::ol($list, $attributes);
}
/**
* Generate an un-ordered list of items.
*
* @param array $list
* @param array $attributes
* @return string
* @static
*/
public static function ul($list, $attributes = array()){
return \Illuminate\Html\HtmlBuilder::ul($list, $attributes);
}
/**
* Build an HTML attribute string from an array.
*
* @param array $attributes
* @return string
* @static
*/
public static function attributes($attributes){
return \Illuminate\Html\HtmlBuilder::attributes($attributes);
}
/**
* Obfuscate a string to prevent spam-bots from sniffing it.
*
* @param string $value
* @return string
* @static
*/
public static function obfuscate($value){
return \Illuminate\Html\HtmlBuilder::obfuscate($value);
}
/**
* Register a custom macro.
*
* @param string $name
* @param callable $macro
* @return void
* @static
*/
public static function macro($name, $macro){
\Illuminate\Html\HtmlBuilder::macro($name, $macro);
}
/**
* Checks if macro is registered.
*
* @param string $name
* @return bool
* @static
*/
public static function hasMacro($name){
return \Illuminate\Html\HtmlBuilder::hasMacro($name);
}
}
Do you have you config/app.php
and composer.json
files set up properly?
app.php
'providers' => [
...
Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class,
Illuminate\Html\HtmlServiceProvider::class,
...
];
'aliases' => [
...
'Form' => Illuminate\Html\FormFacade::class,
'Html' => Illuminate\Html\HtmlFacade::class,
...
];
composer.json
"require": {
...
"illuminate/html": "~5.0",
...
},
"require-dev": {
...
"barryvdh/laravel-ide-helper": "~2.0",
...
},