I want to create 2 JOIN tables mysql and getting error. The error caused by function on Bengkel_model.php but i don't know coz i'm new in CodeIgniter.
My Controller Bengkel.php
<?php namespace App\Controllers;
use CodeIgniter\Controller;
use App\Models\Bengkel_model;
class Bengkel extends Controller
{
public function index()
{
$model = new Bengkel_model();
$data['bengkel'] = $model->getBengkel();
echo view('bengkel_view',$data);
}
public function add_new()
{
echo view('add_bengkel_view');
}
public function save()
{
$model = new Bengkel_model();
$data = array(
'nmBengkel' => $this->request->getPost('nmBengkel'),
'rtBengkel' => $this->request->getPost('rtBengkel')
);
$model->saveBengkel($data);
return redirect()->to('/bengkel');
}
function edit($id)
{
$model = new Bengkel_model();
$data['bengkel'] = $model->getBengkel($id)->getRow();
echo view('edit_bengkel_view', $data);
}
public function update()
{
$model = new Bengkel_model();
$id = $this->request->getPost('idBengkel');
$data = array(
'nmBengkel' => $this->request->getPost('nmBengkel'),
'rtBengkel' => $this->request->getPost('rtBengkel'),
);
$model->updateBengkel($data, $id);
return redirect()->to('/bengkel');
}
public function delete($id)
{
$model = new Bengkel_model();
$model->deleteBengkel($id);
return redirect()->to('/bengkel');
}
public function pcc_method()
{
$data = $this->Bengkel_model->getPccMethod();
}
}
I've try to add Constructor on Controller but it still getting error. I'm new in CodeIgniter.
My Model Bengkel_model.php
<?php namespace App\Models;
use CodeIgniter\Model;
class Bengkel_model extends Model
{
protected $table = 'bengkel';
public function getBengkel($id = false)
{
if($id === false){
return $this->findAll();
}
else{
return $this->getWhere(['idBengkel' => $id]);
}
}
public function getPccMethod()
{
$response = array();
$this->db->select('*');
$this->db->from('rating');
$this->db->join('user','user.idUser = rating.idUser');
$query = $this->db->get();
$response = $query->result_array();
if($query->num_rows() != 0)
{
return $response;
}
else
{
return false;
}
}
public function saveBengkel($data)
{
$query = $this->db->table($this->table)->insert($data);
return $query;
}
public function updateBengkel($data, $id)
{
$query = $this->db->table($this->table)->update($data, array('idBengkel' => $id));
return $query;
}
public function deleteBengkel($id)
{
$query = $this->db->table($this->table)->delete(array('idBengkel' => $id));
return $query;
}
}
Anyone can help me please. Im so frustrated. Sorry for my bad english.
Do it like the other calls of your model
public function pcc_method()
{
$model = new Bengkel_model();
$data = $model->getPccMethod();
}
Or if you'd like to avoid creating a model everywhere in your controller, create it as an attirbute of your controller.
class Bengkel extends Controller
{
protected $model = new Bengkel_model();
// ...
public function pcc_method()
{
$data = $this->model->getPccMethod();
}
}
If you adopt the second option, don't forget to call your model with $this->model
instead of $model
in your controller.