#mysql #laravel #laravel-5 #eloquent
#mysql #laravel #laravel-5 #красноречивый
Вопрос:
Я получаю stack, когда хочу реализовать экспорт данных с параметрами, это код из контроллера
public function export_byMonth(Request $request)
{
return Excel::download(new ProjectMSelected($request->m , $request->y), 'ProjectMonthly_'.$request->m.'_'.$request->y.'.xlsx');
}
Обратите внимание, что M — это месяц, а Y = год
и это код для экспорта с использованием maatwebsite / excel.
namespace AppExports;
use Apptable2;
use MaatwebsiteExcelConcernsFromCollection;
use MaatwebsiteExcelConcernsFromQuery;
use IlluminateContractsViewView;
use MaatwebsiteExcelConcernsFromView;
use MaatwebsiteExcelConcernsExportable;
use MaatwebsiteExcelConcernsWithHeadings;
class ProjectMSelected implements FromView, WithHeadings
{
use Exportable;
public function __construct($m , $y)
{
$this->m = $m;
$this->y = $y;
}
public function headings(): array
{
return [
'Code Project' ,
'Name',
'Directorates',
'Division',
'Scope',
'Priority',
'Progress',
'%',
'Remarks',
'Plan',
'pdate',
'PM',
'CO PM',
];
}
public function view(): View
{
return view('report.excel.report_monthly_per_project', [
'project_array' => table2::whereRaw('YEAR(tgl_masuk) = ',$this->y ,'And Month(tgl_masuk) =', $this->m)->get()
]);
}
}
он все еще анализирует сообщение об ошибке следующим образом, как устранить ошибку?
SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 1 (SQL: select * from `projectmonthlyview2` where Month(tgl_masuk) = YEAR(tgl_masuk) =)
Ответ №1:
Как использовать это вместо:
table2::whereRaw('YEAR(tgl_masuk) = ' . $this->y . ' AND MONTH(tgl_masuk) = ' . $this->m)->get()
Комментарии:
1. по-прежнему получено сообщение об ошибке, синтаксическая ошибка или нарушение доступа: 1064 У вас ошибка в синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MariaDB, на предмет правильного синтаксиса для использования рядом с ‘И МЕСЯЦ (tgl_masuk) =’ в строке 1 (SQL: выберите * из
projectmonthlyview2
, где ГОД (tgl_masuk) = И МЕСЯЦ (tgl_masuk) =)2. Не могли бы вы убедиться, что $request-> y и $request-> m не являются нулевыми значениями?