Подставьте la siguiente consulta:
public function getChartOperator(Request $request)
{
$anio = date('Y');
$month = date('m');
$ordenes = DB::table('orders as o')
->select(DB::raw('MONTHNAME(o.date) as mes'),
DB::raw('YEAR(o.date) as anio'),
DB::raw('(o.status) as estado'),
DB::raw('(o.user_id) as user_id'),
DB::raw('COUNT(*) as total'))
->whereYear('o.date', $anio)
->whereMonth('o.date', $month)
->where('o.status', 'TERMINADO')
->groupBy(DB::raw('MONTHNAME(o.date)'),DB::raw('(o.status)'),DB::raw('YEAR(o.date)'),DB::raw('(o.user_id)'))
->get();
return ['estados' => $ordenes, 'anio' => $anio];
}
obtengo este resultado
{
"estados": [
{
"mes": "diciembre",
"anio": 2019,
"estado": "TERMINADO",
"user_id": 4,
"total": 2
},
{
"mes": "diciembre",
"anio": 2019,
"estado": "TERMINADO",
"user_id": 6,
"total": 1
},
{
"mes": "diciembre",
"anio": 2019,
"estado": "TERMINADO",
"user_id": 7,
"total": 1
}
],
"anio": "2019"
}
lo que prentendo mostrar es el nombre de usuario y никакой el user_id, пользователи este nombre se encuentra en la tabla y su бразильская саванна es имя, entonces ¿como puedo relacionar имя Эль-Кампо que pertenece а-ля пользователи таблицы подставляет ми consulta фактический? y asi obtener el nombre del usuario
Заказы таблицы ми Esta es:
Ты можешь делать это таким образом:
Выбор 1
join
, чтобы производить связь между таблицей orders
и таблицей users
select
, чтобы выбирать имя пользователя быть поддержанными Код
public function getChartOperator(Request $request)
{
$anio = date('Y');
$month = date('m');
$ordenes = DB::table('orders as o')
->select('users.name') /*aqui el nuevo select*/
->select(DB::raw('MONTHNAME(o.date) as mes'),
DB::raw('YEAR(o.date) as anio'),
DB::raw('(o.status) as estado'),
DB::raw('(o.user_id) as user_id'),
DB::raw('COUNT(*) as total'))
->join('users', 'users.id', '=', 'orders.user_id') /*aquí el join*/
->whereYear('o.date', $anio)
->whereMonth('o.date', $month)
->where('o.status', 'TERMINADO')
->groupBy(DB::raw('MONTHNAME(o.date)'),DB::raw('(o.status)'),DB::raw('YEAR(o.date)'),DB::raw('(o.user_id)'))
->get();
return ['estados' => $ordenes, 'anio' => $anio];
}
Выбор 2
Order
now()->year
now()->month
Оставаясь таким:
$anio = now()->year;
$month = now()->month;
$ordenes = Order::selectRaw('users.name,
MONTHNAME(orders.date) AS Mes,
YEAR(orders.date) AS Anio,
orders.status AS Estado,
orders.user_id AS user_id,
COUNT(*) AS Total')
->join('users', 'users.id', '=', 'orders.user_id')
->whereYear('orders.date', $anio)
->whereMonth('orders.date', $month)
->where('orders.status', 'TERMINADO')
->groupBy(DB::raw('MONTHNAME(o.date)'),DB::raw('(o.status)'),DB::raw('YEAR(o.date)'),DB::raw('(o.user_id)'))
->get();
"SQLSTATE[42S22]: Column not found: 1054 Unknown column 'orders.user_id' in 'on clause' (SQL: select MONTHNAME(o.date) as mes, YEAR(o.date) as anio, (o.status) as estado, (o.user_id) as user_id, COUNT(*) as total from `orders` as `o` inner join `users` on `users`.`id` = `orders`.`user_id` where year(`o`.`date`) = 2019 and month(`o`.`date`) = 12 and `o`.`status` = TERMINADO group by MONTHNAME(o.date), (o.status), YEAR(o.date), (o.user_id)) ◀"
– Rodrigo Ruiz 20.12.2019, 19:46$ordenes = DB::table('orders as o') ->select('users.name') /*aqui el nuevo select*/
, но в этом случае с users я говорю об этом:$usuarios = DB::table('users as u')
? – Rodrigo Ruiz 20.12.2019, 20:09