Display one id for multiple date How to display one id for multiple date.Currently it display multiple id for multiple date.How to fix it?
Here my interface: https://imgur.com/a/lWIbLVX
Here my db: https://imgur.com/a/SYycCGU
Here my controller:
class TestController extends Controller
{
public function test()
{
//$resp=[];
$driver = DB::table('users')
->join('order_schedules','users.id','=','order_schedules.driver_id')
->select('driver_id','name','date_time')
->orderby('date_time','asc')
->get();
return view('table',compact('driver'));
}
}
You need to group your results by the name in this case. You can do that like so
$driver = DB::table('users')
->join('order_schedules','users.id','=','order_schedules.driver_id')
->select('driver_id','name','date_time')
->groupBy('name')
->orderby('date_time','asc')
->get();
Documentation: https://laravel.com/docs/5.6/queries#ordering-grouping-limit-and-offset
Display error when i put groupBy('name')
Error: "SQLSTATE[42000]: Syntax error or access violation: 1055 'omer654_logistics.order_schedules.driver_id' isn't in GROUP BY (SQL: select driver_id, name, date_time from users inner join order_schedules on users.id = order_schedules.driver_id group by name order by date_time asc)
@edinz
Use pluck instead of select.
$driver = DB::table('users')
->join('order_schedules','users.id','=','order_schedules.driver_id')
->pluck('driver_id','name','date_time')//here changes
->groupBy('name')
->orderby('date_time','asc')
->get();
I'm changes select with pluck but another error display.
"Method Illuminate\Support\Collection::orderBy does not exist."
@edinz
Now have a look in below code.
$driver = DB::table('users')
->join('order_schedules','users.id','=','order_schedules.driver_id')
->pluck('driver_id','name','date_time')
->groupBy('name')
->sortByDesc('date_time','asc')//here changes
->get();
Still display error:
"arsort() expects parameter 2 to be integer, string given"
@edinz
Use as like below
$driver = DB::table('users')
->join('order_schedules','users.id','=','order_schedules.driver_id')
->pluck('driver_id','name','date_time')
->groupBy('name')
->sortByDesc (new('date_time'),'asc')//here changes
->get();
Still error:"syntax error, unexpected '('"
@edinz
Use as like below.
$driver = DB::table('users')
->join('order_schedules','users.id','=','order_schedules.driver_id')
->pluck('driver_id','name','date_time')
->groupBy('name')
->get();
error:"Too few arguments to function Illuminate\Support\Collection::get()
Please sign in or create an account to participate in this conversation.