CI: ошибка подсчета аргументов в таблицах соединения 2 - PullRequest
0 голосов
/ 09 февраля 2020

Я работаю над проектом, и у меня возникла проблема "Ошибка подсчета аргументов". Я проверил код по коду, но ничего не нашел.

Код контроллера:

<?php
defined('BASEPATH') or exit('No direct script access allowed');

class Appointment extends CI_Controller
{
       public function __construct()
       {
              parent::__construct();
              $this->load->model(['appointment_m', 'jadwal_m']);
       }

       public function index($id)
       {
              $dokter = $this->appointment_m->getProfileApp($id);
              $jadwal = $this->appointment_m->getJadwalApp($id);

              $data = [
                     'dokter' => $dokter,
                     'jadwal' => $jadwal
              ];

              // var_dump($data);
              // die;
              $this->load->view('frontend/appointment/appointment', $data);
       }
}

Код модели:

<?php
defined('BASEPATH') or exit('No direct script access allowed');

class Appointment_m extends CI_Model
{
       public function getProfileApp($id = null)
       {
              $this->db->from('tbldokter');
              if ($id != null) {
                     $this->db->where('id_dokter', $id);
              }
              $query = $this->db->get()->row();
              return $query;
       }

       public function getJadwalApp($id)
       {
              $this->db->join('tbldokter', 'tbldokter.id_dokter = tbljadwal.id_dokter');
              $this->db->from('tbljadwal');
              $this->db->where('tbldokter.id_dokter', $id);
              $query = $this->db->get();
              return $query;
       }
}

Модальное имя процесса:

Обнаружено неперехваченное исключение Тип: ArgumentCountError

Сообщение: слишком мало аргументов для функции Appointment :: index (), 0 передано в D: \ xampp \ htdocs \ dental-web \ system \ core \ CodeIgniter. php в строке 532 и ожидается ровно 1

Имя файла: D: \ xampp \ htdocs \ dental-web \ application \ controllers \ Appointment. php

Номер строки : 12

Backtrace:

Файл: D: \ xampp \ htdocs \ dental-web \ index. php Строка: 315 Функция: require_once

I Поиск по этому сайту связан с проблемой этого типа, но я не нашел решение этой проблемы. Эта проблема возникает перед отправкой формы. Пожалуйста, помогите мне.

Спасибо

Ответы [ 3 ]

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

если $ id функции index () в контроллере является обязательным, то вы должны убедиться, что он всегда существует. если нет, попробуйте определить $ id = null, поэтому если $ id отсутствует, вы не получите ошибку.

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

В сообщении об ошибке четко указано, что число аргументов меньше аргументов, требуемых вашей индексной функцией в контроллере назначений. Чтобы сделать аргумент необязательным, присвойте ему несколько значений по умолчанию, например:

public function index($id = NULL){
  // your code here
}

Теперь вы вызываете этот метод с параметром или без него.

Еще одна вещь, которую вы должны знать: метод индекса по умолчанию для этого контроллера , означает, что если вы вызываете свой контроллер в config / маршруты. php без какого-либо метода, метод индекса вызывается по умолчанию. Такие как:

$route['yourController'] = 'yourController';

http://yourDomain/yourController, в этом случае метод индекса вызывается по умолчанию.

ИЛИ

$route['yourController/(any:)'] =  'yourController/$1';

В этом случае метод индекса будет вызываться с параметром.

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

Ваш индекс нужен для получения идентификатора. Вы передали ему идентификатор? Если нет, то вам будет показана ошибка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...