SQL 加入 codeigniter 4

SQL join codeigniter 4

Codeigniter 4 抛出以下错误:

Argument 2 passed to view() must be of the type array, null given called in D:\xampp\htdocs\lordeCI\app\Controllers\Blog.php on line 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);
    }

非常感谢帮助我的人。

首先您可以删除第一个 select *,您可以 select * 或定义您想要的字段。

只有当您需要 table 1 中的所有列和 table 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);
    }