#php #codeigniter #codeigniter-3 #crud
Вопрос:
Пожалуйста, помогите мне, я не могу получить доступ к своему коду, он всегда показывает ошибку:
Было обнаружено неперехваченное исключение Типа: ArgumentCountError
Сообщение: Слишком мало аргументов для функции Quotation_model::addModels(), передано 1 C:xampphtdocssangilapplicationcontrollersQuotation.php на линии 126 и ровно 2 ожидаемых
Имя файла: C:xampphtdocssangilapplicationmodelsQuotation_model.php
Номер строки: 122
Обратный путь:
Файл: C:xampphtdocssangilapplicationcontrollersQuotation.php Строка: 126 Функция: Добавить модели
Файл: C:xampphtdocssangilindex.php Строка: 315 Функция: require_once
Это и есть код:
Контроллер: Quotation.php
public function addQuotation()
{
$this->form_validation->set_rules('date', 'Date', 'trim|required');
$this->form_validation->set_rules('reference_no', 'Reference No', 'trim|required');
if ($this->form_validation->run() == false) {
$this->add();
} else {
$warehouse_id = $this->input->post('warehouse', true);
$data = array(
"date" => $this->input->post('date'),
"reference_no" => $this->input->post('reference_no'),
"warehouse_id" => $this->input->post('warehouse'),
"customer_id" => $this->input->post('customer'),
"biller_id" => $this->input->post('biller'),
"total" => $this->input->post('grand_total'),
"discount_value" => $this->input->post('total_discount'),
"tax_value" => $this->input->post('total_tax'),
"note" => $this->input->post('note'),
"shipping_city_id" => $this->input->post('city'),
"shipping_state_id" => $this->input->post('state'),
"shipping_country_id" => $this->input->post('country'),
"shipping_address" => $this->input->post('address'),
"shipping_charge" => $this->input->post('shipping_charge'),
"internal_note" => $this->input->post('internal_note'),
"mode_of_transport" => $this->input->post('mode_of_transport'),
"transporter_name" => $this->input->post('transporter_name'),
"transporter_code" => $this->input->post('transporter_code'),
"vehicle_regn_no" => $this->input->post('vehicle_regn_no'),
"user" => $this->session->userdata('user_id')
);
if ($quotation_id = $this->quotation_model->addModel($data)) {
$log_data = array(
'user_id' => $this->session->userdata('user_id'),
'table_id' => $quotation_id,
'message' => 'Quotation Inserted'
);
$this->log_model->insert_log($log_data);
$sales_item_data = $this->input->post('table_data', true);
$js_data = json_decode($sales_item_data);
foreach ($js_data as $key => $value) {
if ($value == null) {
} else {
$product_id = $value->product_id;
$quantity = $value->quantity;
$data = array(
"product_id" => $value->product_id,
"quantity" => $value->quantity,
"price" => $value->price,
"gross_total" => $value->total,
"discount_id" => $value->discount_id,
"discount_value" => $value->discount_value,
"discount" => $value->discount,
"tax_id" => $value->tax_id,
"tax_value" => $value->tax_value,
"tax" => $value->tax,
"quotation_id" => $quotation_id
);
//$this->sales_model->checkProductInWarehouse($product_id,$quantity,$warehouse_id);
if ($this->quotation_model->addQuotationItem($data, $product_id, $warehouse_id, $quantity)) {
} else {
}
}
}
redirect('quotation/view/' . $quotation_id);
} else {
redirect('quotation', 'refresh');
}
}
}
Модель: Quotation_model.php
public function addModel($data, $invoice)
{
if ($this->db->insert('quotation', $data)) {
return $this->db->insert_id();
} else {
return FALSE;
}
}
Ответ №1:
вы создаете модель с 2 входными данными
$data
и $invoice
public function addModel($data, $invoice)
но при вызове модели вводите только 1 вход в контроллер
$this->quotation_model->addModel($data)
удалите $invoice
его в своей модели, если он вам не нужен, или добавьте еще один ввод, когда вы вызываете его из контроллера.
Ответ №2:
public function addModel($data)
{
if ($this->db->insert('quotation', $data)) {
return $this->db->insert_id();
}
return false;
}
Комментарии:
1. Хороший ответ всегда будет иметь хорошее объяснение. Пожалуйста, объясните свой ответ и дайте нам знать, почему и как работает ваше решение
Ответ №3:
Контроллер: Quotation.php
$quotation_id = $this->quotation_model->addModel($data);
итак, в вашей модели: Quotation_model.php
public function addModel($data)
{
if ($this->db->insert('quotation', $data)) {
return $this->db->insert_id();
} else {
return FALSE;
}
}