Я пытаюсь associate
мой Document модели текущего идентификатора из поля зрения, используя комментарий модели. Но после нажатия кнопки. Это всегда говорит.Использования адъюнкта() не будет работать (BadMethodCallException)
Призыв к неопределенным метод Осветите \ Database \ Query \ Builder :: адъюнкт()
CommentController
class CommentController extends Controller
{
public function postComments(Request $request, Document $document)
{
$this->validate($request,
[
'comment' => 'required',
]);
$document = Document::find($document);
$commentObject = new Comment();
$commentObject->comment = $request->comment;
$commentObject->associate($document);
$commentObject->save();
return redirect()->back();
}
}
Я пытаюсь здесь, чтобы получить текущую id
из модель из вида, поэтому я могу связать это в моем $commentObject
.
DocumentController
//READ
public function readDocuments($id)
{
//Find the document in the database and save as var.
$document = Document::find($id);
return view ('document.read')->with('document', $document);
}
маршруты
Route::get('/document/{id}',
[
'uses' => '\App\Http\Controllers\[email protected]',
'as' => 'document.read',
'middleware' => 'auth',
]);
Это где я получаю текущий идентификатор точки зрения.
//COMMENT
Route::post('/document/{document}/comments',
[
'uses' => '\App\Http\Controllers\[email protected]',
'as' => 'comments',
]);
Посмотреть
<div class = "col-md-6">
<div class = "form-group">
<textarea id = "content">{{ $document->content }}</textarea>
</div>
<div class = "form-group">
<button type = "submit" class = "btn btn-success">Approve</button>
</div>
</div>
<!--COMMENT CONTROLLER-->
<div class = "col-md-6">
<form class = "form-vertical" method = "post" action = "{{ url('/document/'.$document->id.'/comments') }}">
<div class = "form-group {{ $errors->has('comment') ? ' has-error' : '' }}">
<label for = "comment">Comment:</label>
<textarea class = "form-control" rows = "4" id = "comment" name = "comment" placeholder = "Leave a feedback"></textarea>
@if ($errors->has('comment'))
<span class = "help-block">{{ $errors->first('comment') }}</span>
@endif
</div>
<div class = "form-group">
<button type = "submit" class = "btn btn-primary">Comment</button>
</div>
<input type = "hidden" name = "_token" value = "{{ Session::token() }}">
</form>
</div>
Я думаю, что у меня ошибка в моем CommentController, потому что, когда я попытался сохранить или вставки. Я думаю, что он не может получить текущий идентификатор модели. Любая помощь или советы? Благодаря!
Update
Модели:
комментарий
class Comment extends Model
{
protected $tables = 'comments';
protected $fillable =
[
'comment',
'document_id',
];
public function documents()
{
return $this->belongsTo('App\Models\Document');
}
}
Документ
class Document extends Model
{
protected $table = 'documents';
protected $fillable =
[
'title',
'content',
'category_id',
];
public function comments()
{
return $this->hasMany('App\Models\Comment');
}
}
Как я могу связать() '' document_id' (внешний ключ), связанный с моей моделью комментариев? См. Мой обновленный пост. У меня есть ошибка, о которой он говорит. 'SQLSTATE [42S22]: Столбец не найден: 1054 Неизвестный столбец 'documents_id' в 'списке полей' (SQL: вставлять значения' comments' ('comment',' documents_id', 'updated_at',' created_at') (hahaha, , 2016-07-28 15:40:22, 2016-07-28 15:40:22)) ' – Francisunoxx
@francisunoxx Пожалуйста, просмотрите .. Я обновил его –
Wow! Я просто ничего себе! Оно работает!! Я немного смущен. '$ document-> comments() -> save ($ commentObject);' Можете ли вы рассказать об этом? – Francisunoxx