Saurabh Agarwal
Saurabh Agarwal

Reputation: 19

Eloquent without laravel selectRow is not wotking

I am using eloquent outside laravel. I have installed illuminate/database in compposer.json. Now i've created a class which extends Illuminate\Database\Eloquent\Model class. Now i want to use DB::row(), but I am getting error

Here is my code:

Model.php

namespace Framework;

use Helpers\Helper;
use Illuminate\Database\Capsule\Manager as Capsule;
use Illuminate\Database\Eloquent\Model as BaseModel;

class Model extends BaseModel {
    public $Error = null;
    public $Connection = null;
    public $qry_builder = null;
    public $version;
    public $table_name;

    function __construct() {
        try{
            parent::__construct();
            $capsule = new Capsule;
            $capsule->addConnection([
                'driver'    => DB_DRIVER,
                'host'      => DB_HOST,
                'database'  => DB_NAME,
                'username'  => DB_USER,
                'password'  => DB_PSSWD,
                'charset'   => 'utf8'
            ]);
            $capsule->setAsGlobal();
            $capsule->bootEloquent();
        }  catch (\Exception $ex){
            Helper::log()->log(LogLevel::ERROR, "Unable to connect DB", ["DB_NAME"=> DB_NAME,"HOST"=>DB_HOST,"DB_USER"=>DB_USER,"DB_PASSWORD"=>DB_PSSWD]);
        }
    }
}

BankMinMaxModel.php

namespace  Models;
use \Framework\Model;
use Helpers\Helper;
class BankMinMaxModel extends Model {
    protected $table = "tbl_pl_bank_min_max_new";
    protected $primaryKey = 'id';
    // protected $fillable = [];
    public $timestamps = false; 
    protected $guarded = [];
    public function get($where){
        $data = null;
        echo $data = self::orderBy("id", "DESC")->where($where)->selectRow("MIN(NULLIF(min_turnover,0)) as min_turnover")->toSql();
        exit;
        if($data){
            $data = $data->toArray();
        }
        return $data;
    }
}

controller :

$loanMinMaxValues = (new BankMinMaxModel)->get([["occup_id", "=", 3]]);

error

"Call to undefined method Illuminate\Database\Eloquent\Builder::selectRow()"

Upvotes: 1

Views: 1245

Answers (1)

jogesh_pi
jogesh_pi

Reputation: 9782

selectRow() has not existed in the Laravel. It should be selectRaw().

Take a look on Raw Expressions in Laravel Documentation.

https://laravel.com/docs/5.8/queries#raw-expressions

DB::raw()

you can use it something like ->select(\DB::raw('column_one, column_tow'))

Upvotes: 1

Related Questions