Skip to content
Snippets Groups Projects
EntryValues.php 1.35 KiB
Newer Older
  • Learn to ignore specific revisions
  • Josh Pollock's avatar
    Josh Pollock committed
    <?php
    
    
    namespace calderawp\CalderaFormsQuery\Select;
    
    
    class EntryValues extends SelectQueryBuilder implements DoesSelectQueryByValue, DoesSelectQueryByEntryId
    
    Josh Pollock's avatar
    Josh Pollock committed
    {
    
    
    
    	/** @inheritdoc */
    
    Josh Pollock's avatar
    Josh Pollock committed
    	public function queryByEntryId($entryId)
    
    Josh Pollock's avatar
    Josh Pollock committed
    	{
    		 $this
    			->getSelectQuery()
    			->where()
    
    			->equals($this->getEntryIdColumn(), $entryId)
    
    Josh Pollock's avatar
    Josh Pollock committed
    			;
    		 return $this;
    	}
    
    
    	/** @inheritdoc */
    
    	public function queryByFieldValue($fieldSlug, $fieldValue, $type = 'equals', $whereOperator = 'AND', $columns = [])
    
    Josh Pollock's avatar
    Josh Pollock committed
    	{
    
    		if (! empty($columns)) {
    
    			$this
    				->getSelectQuery()
    
    				->setColumns($columns);
    
    Josh Pollock's avatar
    Josh Pollock committed
    		switch ($type) {
    
    Josh Pollock's avatar
    Josh Pollock committed
    			case 'equals':
    				$this
    					->getSelectQuery()
    
    Josh Pollock's avatar
    Josh Pollock committed
    					->where($whereOperator)
    
    					->equals($this->getValueColumn(), $fieldValue)
    
    Josh Pollock's avatar
    Josh Pollock committed
    				;
    				break;
    			case 'notEquals':
    				$this->
    				getSelectQuery()
    
    Josh Pollock's avatar
    Josh Pollock committed
    					->where($whereOperator)
    
    					->notEquals($this->getValueColumn(), $fieldValue);
    
    Josh Pollock's avatar
    Josh Pollock committed
    				break;
    			case 'like':
    				$this->
    				getSelectQuery()
    
    Josh Pollock's avatar
    Josh Pollock committed
    					->where($whereOperator)
    
    					->like($this->getValueColumn(), $fieldValue);
    
    Josh Pollock's avatar
    Josh Pollock committed
    				break;
    		}
    
    		$this->isLike = 'like' === $type ? true : false;
    
    		if (!$this->isLike) {
    			$this->getSelectQuery()->where('AND')->equals('slug', $fieldSlug);
    		}
    
    		return $this;
    	}
    
    
    	/** @inheritdoc */
    	public function getValueColumn()
    	{
    		return 'value';
    	}
    
    	/** @inheritdoc */
    	public function getEntryIdColumn()
    	{
    		return 'entry_id';
    	}
    
    Josh Pollock's avatar
    Josh Pollock committed
    }