Преобразовать этот запрос в модель laravel - PullRequest
0 голосов
/ 21 февраля 2020

Я нуб в Laravel. Может ли кто-нибудь помочь мне написать этот запрос в красноречивом Laravel

select * FROM `wf_m_study_budget` a 
left join wf_m_study_ucf_budget_group b ON b.budget_id=a.budget_group 
WHERE YEAR(STR_TO_DATE(regisdate, "%d-%m-%Y"))=2020

пример

 DB::table('wf_m_study_budget')
                            ->join('wf_m_study_ucf_budget_group',
                            'wf_m_study_ucf_budget_group.budget_id', '=', 'wf_m_study_budget.budget_group')
                            ->select('wf_m_study_budget.mem_name',
                            'wf_m_study_budget.mem_id',
                            'wf_m_study_budget.mem_groupname',
                            'wf_m_study_budget.child_name',
                            'wf_m_study_budget.child_schoolname',
                            'wf_m_study_budget.child_studylevel',
                            'wf_m_study_budget.paytype',
                            'wf_m_study_budget.regisdate',
                            'wf_m_study_budget.budget_group','wf_m_study_ucf_budget_group.budget_name')->get();

1 Ответ

0 голосов
/ 21 февраля 2020

Используйте leftjoin() вместо join() и where(DB::raw('')) для использования встроенной функции mysql.

Для Eloquent:

Если у вас есть модель WfMStudyBudget:

WfMStudyBudget::leftjoin('wf_m_study_ucf_budget_group b', 'b.budget_id', '=', 'wf_m_study_budget.budget_group')
              ->where(DB::raw('YEAR(STR_TO_DATE(regisdate, "%d-%m-%Y"))'), 2020)->select('...')
              ->get();

Для QueryBuilder:

DB::table('wf_m_study_budget')
    ->leftjoin('wf_m_study_ucf_budget_group AS b',
    'b.budget_id', '=', 'wf_m_study_budget.budget_group')
    ->where(DB::raw('YEAR(STR_TO_DATE(regisdate, "%d-%m-%Y"))'), 2020)->select('....')
    ->get();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...