私は "Characters"というテーブルを持っています。各行は、char_idと呼ばれる主キーによって識別されます。私はルートとテンプレート、いくつかのCRUDを持ったコントローラを持っているので、Laravelはうまく動いています。Laravel 5.4 - クエリビルダーの問題
ユーザーが「文字/ {char_id}」(たとえば「文字/ 2」)に移動すると、行idで識別される行を表示できます。私は、「文字/ 1」をご覧いただくか、他の数が、私はこのエラーを取得するとき
Route::get('characters/{char_id}', function($char_id) {
$character = \DB::table('characters')->find($char_id);
dd($character);
});
:しかし
私は自分のWebルートに次のコードをしている
QueryException in Connection.php line 647: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'id' in 'where clause' (SQL: select * from
characters
whereid
= 1 limit 1)
あると思われますURLから渡そうとするものに関係なく、「id」という列を探します。私は "ID"を使用するチュートリアルに従っているので、私のコードは "id"という列を探していると思われますが、その回避方法はわかりません。あなたはキャラクタモデルを持っている場合
$character = \DB::table('characters')->where('char_id', $char_id)->first();
しかし、あなただけで設定することができます。
"デフォルトでは" ということを意味しますあなたはそれを変更することができます。できません。 Findは 'id'カラムと明示的に比較します。 'Builder'クラスを拡張し、' find'メソッドを再定義するだけで変更できます。 – Scopey
モデルを使用しているのではなく、ちょうど –
を追加しました。確かにDBALだけでなくActiveRecordも使用しています。 – Scopey