【问题标题】:PhpStorm Laravel 5 Form/Html not found issuePhpStorm Laravel 5 Form/Html 未找到问题
【发布时间】:2017-07-15 03:07:30
【问题描述】:

所以我已经在互联网上看到这个问题一百万次了,但我的问题略有不同。

我创建了一个新的 Laravel 项目并尝试使用 Html 和 Form 类。它们不存在,所以我尽一切努力将它们包含在我的项目中。瞧!它有效...有点...

类 Html 和 Form 似乎正在工作。如果我在浏览器中创建表单并刷新,则没有错误并且表单正在显示。但是... PhpStorm 不识别这些类,它一直抱怨未定义的类 Html 和 Form。有了这个问题,这些类的自动完成功能根本不起作用。

我还包含了 'barryvdh' 的 _ide_helper.php 类(在 https://github.com/barryvdh/laravel-ide-helper 上找到)但这对解决这个问题没有帮助。

我没有想法,有人可以帮我解决这个问题吗?将不胜感激。 干杯!

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    这对我有用,您的composer.json 文件设置正确吗?

    确保scripts 部分设置正确,然后运行composer dump-autoload

    composer.json

    "scripts": {
      "post-update-cmd": [
        "php artisan clear-compiled",
        "php artisan ide-helper:generate",
        "php artisan optimize"
      ] ...
    },
    

    这是我的_ide_helper.php 文件的样子。

    _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);
        }
    
    }
    

    编辑

    您的config/app.phpcomposer.json 文件设置正确吗?

    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",
      ...
    },
    

    【讨论】:

    • 感谢您的回答,但它还没有帮助我。如您所说,在更新我的 composer.json 时出现以下错误:[InvalidArgumentException] 在“ide-helper”命名空间中没有定义命令。另外,我看到有些人从作曲家中删除了 pre-update-cmd。我也应该这样做吗?
    • NP,抱歉没有帮助。我会检查你的配置文件。我更新了我的答案。我相信如果你删除 post-update-cmd 它会加速 composer dump-autoload 但不知道还能做什么。
    • 最终添加 ' "barryvdh/laravel-ide-helper": "~2.0",' 到作曲家工作。谢谢!
    猜你喜欢
    • 2016-02-07
    • 2015-05-05
    • 1970-01-01
    • 2015-07-16
    • 2016-03-08
    • 2015-04-16
    • 2015-03-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多