dtxooq1020 2019-08-10 20:11
浏览 74

Eloquent没有laravel选择Row不工作

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()"

  • 写回答

1条回答 默认 最新

  • dq804806 2019-08-11 01:40
    关注

    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'))

    评论

报告相同问题?

悬赏问题

  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图