mysql 数据表主键Order_ID为bigint(20),使用Order模型查找对应的订单却找到了其他的订单。
比如:Order:find(20170214006401),却查找到Order_ID为20161009000577的订单.
调用代码如下:
$rsOrder = Order::find(20170214006401)->first()->toArray();
?>
Order模型如下
use IlluminateDatabaseEloquentSoftDeletes;
class Order extends IlluminateDatabaseEloquentModel {
use SoftDeletes; protected $dates = ['deleted_at']; //protected $fillable = ['Order_Status']; protected $fillable = array('Order_Status','Is_withdraw','Withdraw_Time'); protected $primaryKey = "Order_ID"; protected $table = "user_order"; public $timestamps = false; // 多where public function scopeMultiwhere($query, $arr) { if (!is_array($arr)) { return $query; } foreach ($arr as $key => $value) { $query = $query->where($key, $value); } return $query; }
//无需日期转换
public function getDates() { return array(); } /** * 指定时间内的订单 * @param $Users_ID 店铺唯一标识 * @param $Begin_Time 开始时间 * @param $End_Time 结束时间 * @return array 订单列表 */ public function ordersBetween($Users_ID, $Begin_Time, $End_Time, $Order_Status) { $builder = $this::where('Users_ID', $Users_ID); if ($Order_Status != 'all') { $builder = $builder->where('Order_Status', $Order_Status); } $builder->whereBetween('Order_CreateTime', [$Begin_Time, $End_Time]) ->orderBy('Order_CreateTime', 'desc'); return $builder; }
}
find方法默认搜索的是主键
代码来自:/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php
public function find($id, $columns = ['*']) { return $this->where('id', '=', $id)->first($columns); }
find
方法好像默认为id
为主键进行查找的