Я пытаюсь реализовать отображение belongsTo
в моем приложении Laravel 4. Но я не могу заставить его работать.Вставка данных при использовании BelongsTo mapping в Laravel 4
У меня есть таблицы БД с именем: вопросы:
question_id | question_title | question_details| ask_by_id | created_at| updated_at
Здесь ask_by_id
является внешний ключ users
таблицы
Проблема я столкнулся, когда я вставить данные в таблицу все значения столбцов вставлены правильно, за исключением столбца ask_by_id
. Если я не ошибаюсь, так как я использую сопоставление belongTo
, Laravel должен автоматически вставлять значение id
текущего пользователя в столбец ask_by_id
для меня. Но этого не случилось, не могли бы вы рассказать мне, что я делаю неправильно?
Вот мои коды:
Модель: Вопрос
class Question extends Eloquent {
protected $table = "questions";
protected $primaryKey = 'question_id';
protected $fillable = array('question_title','question_details','ask_by_id');
public function user()
{
return $this->belongsTo('User', 'ask_by_id', 'id');
}
}
В модели пользователя, я включил следующий код:
public function question()
{
return $this->hasMany('Question');
}
В моем контроллере я использую следующие код для вставки данных формы.
$question = new Question();
$question->question_title = Input::get('question_title');
$question->question_details = Input::get('question_title');
$question->user();
$question->save();
Спасибо за ваш ответ. Когда я использую ваше первое решение, я получаю 'SQLSTATE [42S22]: Столбец не найден: 1054 Неизвестный столбец« user_id »в« списке полей ». Спасибо –
@black_belt Вы также должны изменить свое отношение. Я отредактировал свой ответ –
Это сработало! Большое спасибо. –