Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在我的nerd_表中创建nerd时,我得到以下错误_Php_Laravel - Fatal编程技术网

Php 在我的nerd_表中创建nerd时,我得到以下错误

Php 在我的nerd_表中创建nerd时,我得到以下错误,php,laravel,Php,Laravel,这是我在create_users_table.php中的代码 public function up() { Schema::table('users', function (Blueprint $table) { $table->increments('id'); $table->string('name'); $table->string('email')->unique(); $tab

这是我在create_users_table.php中的代码

public function up()
    {
      Schema::table('users', function (Blueprint $table) {
        $table->increments('id');
        $table->string('name');
        $table->string('email')->unique();
        $table->string('password');
        $table->rememberToken();
        $table->timestamps();
        $table->integer('nerd_level');
       });
    }
Connection.php第647行中的QueryException:SQLSTATE[42S22]:列不可用 在“字段列表”中找到:1054未知列“nerd_level”(SQL:insert 进入
用户
名称
电子邮件
书呆子级别
更新
处创建值(dasdasd,vincentnelissen@hotmail.nl1. 2017-03-3115:41:512017-03-3115:41:51)

当我试图编辑一个书呆子时,我得到了以下错误:

17afaeb4afd6b4276e6af6ff12921ab25d74a9cc.php行中出现错误异常 22:尝试获取非对象的属性(视图: /var/www/vhosts/vincentspage.tk/httpdocs/Laravel/resources/views/nerds/edit.blade.php)

这是我在edit.blade.php中的代码:

     <!DOCTYPE html>
     <html>
     <head>
        <title>Look! I'm CRUDding</title>
        <link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap
        /3.0.0  /css/bootstrap.min.css">
 </head>
<body>
<div class="container">

  <nav class="navbar navbar-inverse">
  <div class="navbar-header">
    <a class="navbar-brand" href="{{ URL::to('nerds') }}">Nerd Alert</a>
  </div>
  <ul class="nav navbar-nav">
    <li><a href="{{ URL::to('nerds') }}">View All Nerds</a></li>
    <li><a href="{{ URL::to('nerds/create') }}">Create a Nerd</a>
  </ul>
 </nav>

 <h1>Edit {{ $nerd->name }}</h1>

 <!-- if there are creation errors, they will show here -->
  {{ HTML::ul($errors->all()) }}

 {{ Form::model($nerd, array('route' => array('nerds.update',  
  $nerd->id),   'method' => 'PUT')) }}

<div class="form-group">
    {{ Form::label('name', 'Name') }}
    {{ Form::text('name', null, array('class' => 'form-control')) }}
</div>

<div class="form-group">
    {{ Form::label('email', 'Email') }}
    {{ Form::email('email', null, array('class' => 'form-control')) }}
</div>

<div class="form-group">
    {{ Form::label('nerd_level', 'Nerd Level') }}
    {{ Form::select('nerd_level', array('0' => 'Select a Level', '1' => 
    'Sees Sunlight', '2' => 'Foosball Fanatic', '3' => 'Basement 
    Dweller'), null, array('class' => 'form-control')) }}
</div>

{{ Form::submit('Edit the Nerd!', array('class' => 'btn btn-primary')) }}

 {{ Form::close() }}

 </div>
 </body>
 </html>
这个错误对其他有类似问题的人是有益的,所以他们也知道应该在代码中修改什么。或者不要犯类似的错误,不管是谁先读的

有人能帮我吗

亲切问候,


Vincent

使用
Schema::create
来创建新表,而不是
Schema::table
。您正在使用
Schema::table
,应用程序希望您尝试修改现有表

所以对于
create\u users\u table

public function up()
    {
      Schema::create('users', function (Blueprint $table) {
        $table->increments('id');
        $table->string('name');
        $table->string('email')->unique();
        $table->string('password');
        $table->rememberToken();
        $table->timestamps();
        $table->integer('nerd_level');
       });
    }
其他信息

Connection.php第647行中的QueryException:SQLSTATE[42S22]:列不可用 在“字段列表”中找到:1054未知列“nerd_level”(SQL:insert 进入用户(姓名、电子邮件、书呆子级别、更新时间、创建时间)值 (dasdad,vincentnelissen@hotmail.nl, 1, 2017-03-31 15:41:51, 2017-03-31 15:41:51)

此错误是因为您试图将记录保存到一个表中,而该表上没有
nerd\u level
字段。因此,如果您已经创建了一个迁移,并且在添加字段时先运行迁移,然后再运行迁移,那么它将不起作用。因此,您需要在对文件进行任何更改之前回滚迁移,或者创建一个新迁移,只需将nerd_级别字段添加到现有表中

第一种方法

  • 要回滚迁移,请运行以下命令,直到回滚create_users_表或声明步骤。见文件

    php artisan迁移:回滚

  • 带上所需的更改,添加以下行

    $table->integer('nerd_level')

  • 再次运行迁移

    php artisan迁移

第二种方法(首选方法)。见文件

  • 保留现有的create_users_表,不使用
    $table->integer('nerd_level')
  • 创建一个新的单独迁移,只添加新列
17afaeb4afd6b4276e6af6ff12921ab25d74a9cc.php行中出现错误异常 22:尝试获取非对象的属性(视图: /var/www/vhosts/vincentspage.tk/httpdocs/Laravel/resources/views/nerds/edit.blade.php)


此错误是因为,正如错误描述的,您试图访问null对象的属性,这意味着您需要首先让该用户(模型)存在于表中,以便能够访问其属性。

能否显示NerdController.php上的第128行?另外,无论调用什么delete,都可以显示所有内容以查看该变量是如何变为null的吗?创建表后,请验证nerd_level作为列存在。您是在迁移之前还是之后将该列添加到迁移中的
descripe nerd_table
以验证该列是否存在。您能否向我们展示mysql中
descripe users
show create table users
的输出?如果这是新代码,您应该遵守Laravel的表名约定。它应该是
nerd
,而不是
nerd\u table
。调用
user\u table
tblUser
之类的东西很久以前就过时了。
public function up()
    {
      Schema::create('users', function (Blueprint $table) {
        $table->increments('id');
        $table->string('name');
        $table->string('email')->unique();
        $table->string('password');
        $table->rememberToken();
        $table->timestamps();
        $table->integer('nerd_level');
       });
    }