フィルタとして機能する入力フィールドを持つテーブルがあります。関係を持つOrdersテーブルとUsersテーブルの値があります。Laravel:クエリビルダとの関係
例えば:
Order Id | User Full Name | Order Price | Date |
[order filter] [user name filter] [order date filter]
どのように関係を経由してユーザテーブルから値をフィルタリングすることができますか?
これは当然のエラーを返します:
public function name($name)
{
return $this->builder->where('name', 'LIKE', '%$name%')->orWhere('surname', 'LIKE', '%$name%');
}
エラー:
QueryException in Connection.php line 770:
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'name' in 'where clause' (SQL: select count(*) as aggregate from `orders` where (`name` LIKE %$name% or `surname` LIKE %$name%))
あなたのカラム名は 'name'か' User Full Name'ですか?あなたのエラーメッセージは非常にクリア/シンプルです - > '列が見つかりません:1054不明な列 '名前句'の 'where句'。したがって、 'name'カラムは存在しないので、実際のカラム名は何ですか? – Sean
あなたのクエリは、おそらく存在する関連ユーザテーブルではなく、ordersテーブルのカラム 'name'を探しています。 MySQLでクエリを書く方法を知っていますか? – sunomad
@Sean、私はそれが存在しないことを知っています。私はユーザーのテーブルでそれを検索したい。 Ordersテーブルには関係がありますが、そのアクセス方法は問題です。 – Rudolph