<?php
class Cart extends CI_Controller{
public $paypal_data = '';
public $tax;
public $shipping;
public $total =0;
public $grand_total;
//cart index
public function index(){
//load view
$data('main_content') = 'cart';
$this->load->view('layouts/main', $data);
}//end function
//add to Cart
public function add(){
//item data in a array construct
$data = array('id'=> $this->input->post('item_number'), 'qty'=> $this->input->post('qty'), 'price'=> $this->input->post('price'), 'name'=> $this->input->post('title'));//end statement
}//end function
}//end class cart
Приведенный выше код вызывает следующую ошибку: «Неустранимая ошибка: невозможно использовать возвращаемое значение функции в контексте записи». Я много раз просматривал и искал приведенный выше код, но не мог найти ошибку. Я был бы очень признателен, если бы кто-нибудь мог помочь.
Вероятно, это должен быть $data['main_content']. Скобки предназначены для вызова функций, квадратные скобки - для индексации массивов. Но у вас нет массива $data.
Может стоит $this->data['main_content']






Может ошибка в этой строке
$data = array();
$data['main_content'] = 'cart';
Проблема в этой строке:
$data('main_content') = 'cart';
Использование круглых скобок означает, что вы вызываете функцию, но не можете назначить ее вызову функции. Вы, вероятно, хотели присвоить массиву индекс, но у вас нет массива $data. Я вижу, вы создали $data в функции add(), но эта переменная является локальной для этой функции. Вероятно, оба они должны быть свойствами класса, поэтому они должны быть $this->data. А в index() нужно использовать квадратные скобки.
public function index(){
//load view
$this->data['main_content'] = 'cart';
$this->load->view('layouts/main', $this->data);
}//end function
//add to Cart
public function add(){
//item data in a array construct
$this->data = array('id'=> $this->input->post('item_number'), 'qty'=> $this->input->post('qty'), 'price'=> $this->input->post('price'), 'name'=> $this->input->post('title'));//end statement
}//end function
Я протестировал это с помощью print_r ($ data); и вы действительно правы. Большое спасибо.
Нет необходимости использовать свойства класса, по крайней мере, в индексной функции, поскольку OP просто отправляет данные в представление. Обычно это ограничивается использованием в методе контроллера в CI.
@jtheman Я не был уверен. Мне показалось, что он хотел использовать тот же массив, который обновляется в add(). Я не знаком с CI.
@Barmar, я понимаю. Но в CI способ отправки данных в представление по умолчанию - это установка простого массива данных в конкретном методе контроллера, а затем передача массива в качестве второго аргумента методу load->view(). Конечно, ваш ответ тоже полностью рабочий.
Вероятно, эта строчка:
$data('main_content') = 'cart'. Что такое$data? Если это массив, вы не хотите использовать круглые скобки ...