私は単純なドロップダウンをHTMLコード内に2つのテーブルから作成したいと思います。私のコードでは、他のテーブルの列と連結する関係データを取得できません。例えば、これは私のコードです:Laravelは、関係とconcat列から単純なドロップダウンを作成します
$user_accounts = UserAccountNumber::with('currencyType')->select('*', DB::raw('CONCAT("CardNumber: ", card_number) AS account_info'))
->whereUserId(Auth::user()->id)
->pluck('account_info', 'id');
このコードは正常に動作、しかし、私はUserAccountNumber
テーブルといくつかのcurrencyType
表の列をconactしたいと私は例えばDB::raw()
へのTableName.ColumnNameを使用カント:
$user_accounts = UserAccountNumber::with('currencyType')
->select(
'*',
DB::raw('CONCAT(" CardNumber: ", card_number, "CurrencyType: ", currencyType.title) AS account_info'))
->whereUserId(Auth::user()->id)
->pluck('account_info', 'id');
その後、私はこのエラーを取得:
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'currencyType.currency_type' in 'field list' (SQL: select *, CONCAT("AccountNumber: ",account_number, " CardNumber: ", card_number, "CurrencyType: ", currencyType.currency_type) AS account_info from `user_account_numbers` where `user_id` = 17)
モデルで
currencyType
方法:
public function currencyType()
{
return $this->belongsTo(CurrencyType::class, 'currency_type', 'id');
}
Laravelは2つのクエリで負荷関係を結ぶため、結合しません。 PHPで手動でJOINを実行するか、文字列を連結する必要があると思います –
@LêTrầnTiếnTrungありがとう –