私は次のようにデータベースクエリを書きました:
$query = $db->getQuery(true)
->select("u.*,ju.username,ju.email,ju.lastvisitDate as last_login")
->from("#__component_users AS u")
->leftJoin("#__users AS ju ON ju.id = u.uid");
特にエイリアスがある場合、select
句でアイテムを引用するにはどうすればよいですか?
$db->quoteName(mixed $name, mixed $as = null)
https://api.joomla.org/cms-3/classes/JDatabaseQuery.html#method_quoteName
QuoteName関数を使用すると、列名を引用できます。文字列と配列を受け入れます。エイリアス(AS)を含む単純な引用は次のようになります。
$db->quoteName('ju.lastvisitDate', 'last_login')
$ as(2番目のパラメーター)は常にオプションです。したがって、列にエイリアスを付けたくない場合は、
$db->quoteName('ju.lastvisitDate')
配列では次のようになります。
$db->quoteName(array('ju.email', 'ju.lastvisitDate'), array(null, 'last_login'))
列にエイリアスを付けたくない場合は、2番目の配列のnull値に注意してください。
予約済みのキーワードや変数(ユーザーが送信したものなど)を列名として使用しない限り、エスケープしません。こちらもご覧ください: https://docs.joomla.org/Secure_coding_guidelines#Secure_field_names