#php #mysql #laravel #laravel-5 #laravel-5.2
#php #mysql #laravel #laravel-5
Вопрос:
У меня есть столбец с именем people_id
вместо user_id
, поэтому, когда я запускаю свой запрос в laravel, он выдает эту ошибку
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'user_id' in 'field list' (SQL: insert into `questions` (`user_id`, `created_at`) values (2, 2016-10-19 07:07:33))
Как я могу заставить его использовать people_id вместо user_id, предполагая, что имя таблицы ‘people’
Мой App/User.php файл
<?php
namespace App;
use IlluminateFoundationAuthUser as Authenticatable;
class User extends Authenticatable
{
protected $table='people';
protected $fillable = [
'name', 'email', 'password','age'
];
protected $hidden = [
'password', 'remember_token',
];
public function questions() {
return $this->hasMany('Appquestions');
}
}
Ответ №1:
По модели вопроса:
return $this->belongsTo('AppUser', 'people_id');
Ответ №2:
return $this->hasMany(Questions::class, 'people_id', 'id');
Ответ №3:
Eloquent определяет внешний ключ отношения на основе имени модели. В вашем случае автоматически предполагается, что модель вопроса имеет внешний ключ user_id.
итак, вы должны изменить на
return $this->hasMany('Appquestions', 'people_id');
Возможно, вам следует прочитать это:https://laravel.com/docs/5.2/eloquent-relationships