【问题标题】:Eloquent query doesn't use the where/first conditions. Why?Eloquent 查询不使用 where/first 条件。为什么?
【发布时间】:2019-07-19 13:03:25
【问题描述】:

简单的 eloquent 查询不使用 where 条件。

Players::where('id_player',"=" ,3113)-​​>first()->toSql();

返回:

“从players中选择*”

我的控制者

namespace App\Http\Controllers\Office;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;

use App\Players;

class OfficeController extends Controller{
   public function playerLineup(Request $request){
      $e = Players::where('id_player',"=" ,3113)->first()->toSql(); 
      dd($e);
   }
}

我的模态

namespace App;

use Illuminate\Support\Facades\DB;
use Illuminate\Database\Eloquent\Model;

class Players extends Model{
    protected $primaryKey = 'idp';
}

【问题讨论】:

  • 试试dd(Players::where('id_player', 3113)->toSql()); 输出是什么?
  • 输出相同。

标签: laravel eloquent


【解决方案1】:

运行->first() 后,结果是Player 模型的新实例。然后 ->toSql() 在新模型上就像 Player::query()->toSql()

您需要在此之前致电->toSql()

Players::where('id_player',"=" ,3113)->toSql();

Players::where('id_player',"=" ,3113)->limit(1)->toSql();

【讨论】:

  • 好答案,我只是在输入同样的内容。 :)
  • 感谢它的工作原理:“select * from players where id_player = ?”
【解决方案2】:

/尝试这样做/

namespace App\Http\Controllers\Office;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Players;

use DB;

class OfficeController extends Controller{
   public function playerLineup(Request $request){
      $e = DB::table('Players')->where('id_player',"=" ,3113)->get()->first(); 
      dd($e);
   }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-07
    • 2020-08-15
    • 2014-08-20
    • 1970-01-01
    • 2013-05-24
    • 2012-01-29
    • 2015-07-05
    • 2019-11-12
    相关资源
    最近更新 更多