无法使用Laravel 5.3在User表中添加其他信息

时间:2017-01-27 01:42:59

标签: php laravel laravel-5.3

我想为我的其他用户信息添加另一个表。这是我的架构看起来像:

public function up()
    {
        Schema::create('users_profile', function (Blueprint $table) {
            $table->increments('id');
            $table->integer('user_id')->unsigned();
            $table->text('address');
            $table->enum('gender', array('M','F'));
            $table->text('phone_number');
            $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
            $table->timestamps();
        });
    }

我遵循Laravel关于关系方法的文档。 我创建了一个名为 User_Profile 的模型,并声明它与用户模型的关系。

我修改了用户模型

 //relationships
    public function profile() {
        return $this->hasOne('App\User_Profile');
    }

User_Profile

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;
class User_Profile extends Model
{

    protected $fillable = [
        'user_id', 'address', 'gender', 'phone_number'
    ];

    public function user() {
        return $this->belongsTo('App\User');
    }
}

然后我使用 tinker 添加 所以它是这样的:

>>> $profile;
=> App\User_Profile {#671
     user_id: 1,
     address: "123 Manila, Philippines, Asia, Earth, Milky Way Galaxy",
     gender: "M",
     phone_number: "3",
     created_at: "2017-01-27 01:32:34",
     updated_at: "2017-01-27 01:32:47",
   }

但是我遇到了这样的错误:

>>> $profile->save();
Illuminate\Database\QueryException with message 'SQLSTATE[42S02]: Base table or view not found: 1146 Table 'flax_admin.user__profiles' doesn't exist (SQL: insert into `user__profiles` (`use
r_id`, `address`, `gender`, `phone_number`, `created_at`, `updated_at`) values (1, 123 Manila, Philippines, Asia, Earth, Milky Way Galaxy, M, 09195999873, 2017-01-27 01:32:34, 2017-01-27 01:32:47))'
>>>

你能帮我辨别出我的错误吗?我仍然是使用Laravel框架的新手。

1 个答案:

答案 0 :(得分:1)

类名必须是UserProfile而不是User_Profile