我想为我的其他用户信息添加另一个表。这是我的架构看起来像:
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框架的新手。
答案 0 :(得分:1)
类名必须是UserProfile而不是User_Profile