* @author Dennis Eichhorn * @copyright 2013 Dennis Eichhorn * @license OMS License 1.0 * @version 1.0.0 * @link http://orange-management.com */ namespace Modules\Media\Models; use phpOMS\DataStorage\Database\Query\Builder; use phpOMS\DataStorage\Database\Query\Column; class CollectionMapper extends MediaMapper { protected static $hasMany = [ 'sources' => [ 'mapper' => '\Modules\Media\Models\MediaMapper', /* mapper of the related object */ 'relationmapper' => null, /* if the relation itself is a more complex object that has it's own mapper */ 'table' => 'media_relation', /* table of the related object, null if no relation table is used (many->1) */ 'dst' => 'media_relation_dst', 'src' => 'media_relation_src', ], ]; /** * Primary table. * * @var \string * @since 1.0.0 */ protected static $table = 'media'; protected static $createdAt = 'media_created_at'; /** * Primary field name. * * @var \string * @since 1.0.0 */ protected static $primaryField = 'media_id'; /** * Find. * * @param array $columns Columns to select * * @return Builder * * @since 1.0.0 * @author Dennis Eichhorn */ public function find(...$columns) : Builder { return parent::find(...$columns)->from('account_permission') ->where('account_permission.account_permission_for', '=', 'news') ->where('account_permission.account_permission_id1', '=', 1) ->where('news.news_id', '=', new Column('account_permission.account_permission_id2')) ->where('account_permission.account_permission_r', '=', 1); } }