Codeigniter 4 выдает следующую ошибку:
Аргумент 2, передаваемый в view(), должен иметь тип массива, с заданным нулевым значением. вызывается в D:\xampp\htdocs\lordeCI\app\Controllers\Blog.php в строке 35
Речь идет о блоке кода ниже:
public function post($post_id)
{
$model = new BlogModel();
$posts = $model->select('*')->select('c1.nome as categoria, c2.nome as categoria_2')
->join('categorias c1', 'c1.categoria_id = posts.categoria', 'inner')
->join('categorias c2', 'c2.categoria_id = posts.categoria_2', 'inner')
->find($post_id);
return view('posts/single_post',$posts);
}
Я очень благодарен тем, кто помогает мне в этом.






Сначала вы можете удалить первый выбор *, вы либо выбираете *, либо определяете нужные поля.
Это следует делать только в том случае, если вам нужны все столбцы из таблицы 1 и только некоторые из таблицы 2.
Вот так:
$model->select('*, c1.nome as categoria, c2.nome as categoria_2');
Во-вторых, вам нужно отправить массив, чтобы эти ключи можно было превратить в переменные. В этом случае, если вы хотите, чтобы в вашем представлении была переменная с именем posts, вы должны отправить ей индекс в своем массиве.
public function post($post_id)
{
$model = new BlogModel();
$data['posts'] = $model->select('c1.nome as categoria, c2.nome as categoria_2')
->join('categorias c1', 'c1.categoria_id = posts.categoria', 'inner')
->join('categorias c2', 'c2.categoria_id = posts.categoria_2', 'inner')
->find($post_id);
return view('posts/single_post',$data);
}
select('*, c1.nome as categoria, c2.nome as categoria_2')если вам нужно получить доступ и к другим столбцам
не стесняйтесь редактировать мой комментарий в свой ответ, комментарии могут устареть
Вы должны передать
arrayвместоvariable. Пожалуйста, замените$postsна$data['posts']и передайте$dataв представлении и в представлении для печати$posts