I've been working with Laravel Eloquent, now I want to write RAW query and get data with it.
My Query(Eloquent) is this:
$jobs = CompanyJob::where('fair_id',$fair_id);
$jobs = $jobs->with('company');
// dd($jobs->toSql());
if (!empty($jobIds)) {
$jobs = $jobs->whereIn('id',$jobIds);
}
$jobs = $jobs->orderBy('id', 'ASC');
if(isset($search) && !empty($search))
$jobs = $jobs->where(function($query) use($search){
$query->where('title','LIKE','%'.$search.'%')->OrWhere('location','LIKE','%'.$search.'%');
});
if (!empty($limit)) {
$jobs = $jobs->limit($limit);
$jobs = $jobs->offset($offset);
}
$jobs = $jobs->get();
The result from this query is :
{
"jobs": [
{
"id": 6381,
"company_id": "1507",
"fair_id": "118",
"recruiter_id": "147143",
"title": "Master of Arts in Entrepreneurship for the Global Hospitality and Tourism Industry",
"description": "<p><span style=\"font-weight: 400;\">Här kan du hitta mer information om utbildningen!</span><span style=\"font-weight: 400;\"><br /><br /></span></p>",
"job_type": "Permanent",
"language": "English",
"location": "Brig",
"contact_name": null,
"phone": null,
"url": "https://www.studentum.se/skola/swiss-education-group/cesar-ritz-colleges/master-of-arts-in-entrepreneurship-for-the-global-hospitality-and-tourism-industry-969435",
"salary": "Competitive",
"match": "1",
"status": null,
"params": null,
"is_imported": "N",
"questionnaires_template_id": "0",
"import_ref": null,
"imported_from": null,
"match_index": "N",
"last_offset": null,
"total_records_to_index": null,
"created_at": "2021-02-27 17:22:24",
"updated_at": "2021-02-27 17:22:24",
"company": {
"id": 1507,
"admin_id": null,
"fair_id": "118",
"recruiter_id": "147136",
"company_name": "Swiss Education Group",
"company_post_code": "111",
"company_state": "Göteborg",
"company_country": "Sverige",
"company_match": "1",
"company_web_url": "https://www.studentum.se/skola/swiss-education-group/",
"company_facebook_url": null,
"company_youtube_url": null,
"company_twitter_url": null,
"company_in_url": null,
"company_instagram_url": null,
"company_stand_type": "Bronze",
"description": "<p><span style=\"font-weight: 400;\">Vilka är vi?</span></p>\r\n<p> </p>\r\n<p><span style=\"font-weight: 400;\">Swiss Education Group (SEG) är en av världens ledande leverantörer av Hotell Management, kock -och konditorutbildningar i Schweiz. Våra utbildningar är till för studenter som vill ha en internationell karriär som hotellchef, kock, konditor eller något annat yrke inom just servicebranschen.</span></p>\r\n<p> </p>\r\n<p><span style=\"font-weight: 400;\">Vi driver totalt fyra skolor på olika campus i Schweiz:</span></p>\r\n<p><span style=\"font-weight: 400;\">- Swiss Hotel Management School</span></p>\r\n<p><span style=\"font-weight: 400;\">- Culinary Arts Academy Switzerland</span></p>\r\n<p><span style=\"font-weight: 400;\">- Hotel Institute Montreux</span></p>\r\n<p><span style=\"font-weight: 400;\">- César Ritz Colleges Switzerland</span></p>\r\n<p> </p>\r\n<p><span style=\"font-weight: 400;\">Samarbeten med branschen</span></p>\r\n<p> </p>\r\n<p><span style=\"font-weight: 400;\">Samtliga skolor som ingår i vårt nätverk, är akademiskt ackrediterade och har etablerade samarbeten med många av branschens ledande företag och varumärken. Några få exempel på samarbeten är: Four Seasons, Ritz Paris, Marriott International samt lyxrestauranger världen över. Detta ger studenten en utbildning som är direkt anknuten till vad den internationella hotellbranschen efterfrågar.</span></p>\r\n<p> </p>\r\n<p><span style=\"font-weight: 400;\">Swiss Education Group (SEG) är en av världens främsta nätverk av skolor inom 'hospitality management'. Nätverkets framgång har lett till att den internationella hotellbranschen nu ställer allt högre krav på sina medarbetare. Man kan verkligen säga att SEG har höjt ribban för kvaliteten på anställda inom hospitality management.</span></p>",
"company_logo": "assets/images/user-id-48854_SEG-logga.png",
"company_stand_image": "assets/images/user-id-48854_SEG-logga.png",
"company_stand_banner": "assets/images/user-id-48854_SEG-roll.jpg",
"dashboard_thumbnail": null,
"company_hall": "2",
"questionnaire_selected": "0",
"enable_recruiters": "1",
"enable_webinars": "0",
"enable_goodies": "0",
"enable_media": "1",
"enable_jobs": "1",
"enable_documents": "1",
"enable_about": "1",
"enable_auto_enrolled": "0",
"enable_poll": "0",
"display_order": "0",
"created_at": "2021-02-27 16:59:10",
"updated_at": "2021-02-27 16:59:10"
}
},
{
"id": 6480,
"company_id": "1521",
"fair_id": "118",
"recruiter_id": "147575",
"title": "Master of Arts in Entrepreneurship for the Global Hospitality and Tourism Industry",
"description": "<p><span style=\"font-weight: 400;\">Här kan du hitta mer information om utbildningen!</span><span style=\"font-weight: 400;\"> </span></p>",
"job_type": "Permanent",
"language": "English",
"location": "Brig",
"contact_name": null,
"phone": null,
"url": "https://www.studentum.se/skola/swiss-education-group/cesar-ritz-colleges/master-of-arts-in-entrepreneurship-for-the-global-hospitality-and-tourism-industry-969435",
"salary": "Competitive",
"match": "1",
"status": null,
"params": null,
"is_imported": "N",
"questionnaires_template_id": "0",
"import_ref": null,
"imported_from": null,
"match_index": "N",
"last_offset": null,
"total_records_to_index": null,
"created_at": "2021-03-01 00:39:05",
"updated_at": "2021-03-01 00:39:05",
"company": {
"id": 1521,
"admin_id": null,
"fair_id": "118",
"recruiter_id": null,
"company_name": "Swiss Education Group",
"company_post_code": "111",
"company_state": "Malmö",
"company_country": "Sverige",
"company_match": "1",
"company_web_url": "https://www.studentum.se/skola/swiss-education-group/",
"company_facebook_url": null,
"company_youtube_url": null,
"company_twitter_url": null,
"company_in_url": null,
"company_instagram_url": null,
"company_stand_type": "Bronze",
"description": "<p>Vilka är vi? <br /> <br /> Swiss Education Group (SEG) är en av världens ledande leverantörer av Hotell Management, kock -och konditorutbildningar i Schweiz. Våra utbildningar är till för studenter som vill ha en internationell karriär som hotellchef, kock, konditor eller något annat yrke inom just servicebranschen. <br /> <br /> Vi driver totalt fyra skolor på olika campus i Schweiz: <br /> - Swiss Hotel Management School <br /> - Culinary Arts Academy Switzerland <br /> - Hotel Institute Montreux <br /> - César Ritz Colleges Switzerland <br /> <br /> Samarbeten med branschen <br /> <br /> Samtliga skolor som ingår i vårt nätverk, är akademiskt ackrediterade och har etablerade samarbeten med många av branschens ledande företag och varumärken. Några få exempel på samarbeten är: Four Seasons, Ritz Paris, Marriott International samt lyxrestauranger världen över. Detta ger studenten en utbildning som är direkt anknuten till vad den internationella hotellbranschen efterfrågar. <br /> <br /> Swiss Education Group (SEG) är en av världens främsta nätverk av skolor inom 'hospitality management'. Nätverkets framgång har lett till att den internationella hotellbranschen nu ställer allt högre krav på sina medarbetare. Man kan verkligen säga att SEG har höjt ribban för kvaliteten på anställda inom hospitality management. <br /> </p>",
"company_logo": "assets/images/user-id-48854_SEG-logga.png",
"company_stand_image": "assets/images/user-id-48854_SEG-logga.png",
"company_stand_banner": "assets/images/user-id-48854_SEG-roll.jpg",
"dashboard_thumbnail": null,
"company_hall": "3",
"questionnaire_selected": "0",
"enable_recruiters": "1",
"enable_webinars": "0",
"enable_goodies": "0",
"enable_media": "1",
"enable_jobs": "1",
"enable_documents": "1",
"enable_about": "1",
"enable_auto_enrolled": "0",
"enable_poll": "0",
"display_order": "0",
"created_at": "2021-03-01 00:13:26",
"updated_at": "2021-03-01 00:13:26"
}
},
{
"id": 6520,
"company_id": "1528",
"fair_id": "118",
"recruiter_id": "147609",
"title": "Master of Arts in Entrepreneurship for the Global Hospitality and Tourism Industry",
"description": "<p><span style=\"font-weight: 400;\">Här kan du hitta mer information om utbildningen!</span> <span style=\"font-weight: 400;\"> </span></p>",
"job_type": "Permanent",
"language": "English",
"location": "Brig",
"contact_name": null,
"phone": null,
"url": "https://www.studentum.se/skola/swiss-education-group/cesar-ritz-colleges/master-of-arts-in-entrepreneurship-for-the-global-hospitality-and-tourism-industry-969435",
"salary": "Competitive",
"match": "1",
"status": null,
"params": null,
"is_imported": "N",
"questionnaires_template_id": "0",
"import_ref": null,
"imported_from": null,
"match_index": "N",
"last_offset": null,
"total_records_to_index": null,
"created_at": "2021-03-01 01:29:33",
"updated_at": "2021-03-01 01:29:33",
"company": {
"id": 1528,
"admin_id": null,
"fair_id": "118",
"recruiter_id": null,
"company_name": "Swiss Education Group",
"company_post_code": "111",
"company_state": "Stockholm",
"company_country": "Sverige",
"company_match": "1",
"company_web_url": "https://www.studentum.se/skola/swiss-education-group/",
"company_facebook_url": null,
"company_youtube_url": null,
"company_twitter_url": null,
"company_in_url": null,
"company_instagram_url": null,
"company_stand_type": "Bronze",
"description": "<p>Vilka är vi? <br /> <br /> Swiss Education Group (SEG) är en av världens ledande leverantörer av Hotell Management, kock -och konditorutbildningar i Schweiz. Våra utbildningar är till för studenter som vill ha en internationell karriär som hotellchef, kock, konditor eller något annat yrke inom just servicebranschen. <br /> <br /> Vi driver totalt fyra skolor på olika campus i Schweiz: <br /> - Swiss Hotel Management School <br /> - Culinary Arts Academy Switzerland <br /> - Hotel Institute Montreux <br /> - César Ritz Colleges Switzerland <br /> <br /> Samarbeten med branschen <br /> <br /> Samtliga skolor som ingår i vårt nätverk, är akademiskt ackrediterade och har etablerade samarbeten med många av branschens ledande företag och varumärken. Några få exempel på samarbeten är: Four Seasons, Ritz Paris, Marriott International samt lyxrestauranger världen över. Detta ger studenten en utbildning som är direkt anknuten till vad den internationella hotellbranschen efterfrågar. <br /> <br /> Swiss Education Group (SEG) är en av världens främsta nätverk av skolor inom 'hospitality management'. Nätverkets framgång har lett till att den internationella hotellbranschen nu ställer allt högre krav på sina medarbetare. Man kan verkligen säga att SEG har höjt ribban för kvaliteten på anställda inom hospitality management. <br /> </p>",
"company_logo": "assets/images/user-id-48854_SEG-logga.png",
"company_stand_image": "assets/images/user-id-48854_SEG-logga.png",
"company_stand_banner": "assets/images/user-id-48854_SEG-roll.jpg",
"dashboard_thumbnail": null,
"company_hall": "1",
"questionnaire_selected": "0",
"enable_recruiters": "1",
"enable_webinars": "0",
"enable_goodies": "0",
"enable_media": "1",
"enable_jobs": "1",
"enable_documents": "1",
"enable_about": "1",
"enable_auto_enrolled": "0",
"enable_poll": "0",
"display_order": "0",
"created_at": "2021-03-01 01:19:58",
"updated_at": "2021-03-01 01:19:58"
}
}
]
}
I want to write RAW query for this, first i used $jobs->toSlq() but this didn't give me query of with() So I searched and found that for this I have to use
DB::enableQueryLog(); and DB::getQueryLog();
Then I got following result:
array:2 [
0 => array:3 [
"query" => "select * from `company_jobs` where `fair_id` = ? and (`title` LIKE ? or `location` LIKE ?) order by `id` asc"
"bindings" => array:3 [
0 => "118"
1 => "%the%"
2 => "%the%"
]
"time" => 4.88
]
1 => array:3 [
"query" => "select * from `companies` where `companies`.`id` in (?, ?, ?)"
"bindings" => array:3 [
0 => "1507"
1 => "1521"
2 => "1528"
]
"time" => 0.27
]
]
Still I'm not able to understand how to write query to get data as above is given. How will I get companies.id in raw query and how companies record will be join with jobs data etc? Can anyone help me to write Eloquent query in RAW SQL query? I also want to know how with() works in Laravel?
Relations of Models are:
Job->belongsTo('Company') and
Company->hasMany('CompanyJob')