Error trying to use query builder (version 4.04) |
I'm receiving this error:
When I try to use the "orWhereIn" method of the query builder like so: $results = $this->select('id, body, timestamp, user_id') ->where('user_id', $userID) ->orWhereIn('id', function(BaseBuilder $subq) { return $subq->select('followed_id') ->from('followers') ->where('follower_id', $userID); }) ->orderBy('timestamp', 'DESC') ->findAll(); The "$this" above is in context with the model I am in, so I am using the built-in query builder instance of the model. I have the initial table set up by a "protected $table" declaration (thus no from clause under the first select). Not sure how to fix it - can anyone help?
The builtin instance of the Query Build is $this->builder();
What did you Try? What did you Get? What did you Expect?
Joined CodeIgniter Community 2009. ( Skype: insitfx )
Thanks, but I tried that and am still getting the same error.
![]() new code: $builder = $this->builder(); $builder->select('id, body, timestamp, user_id'); $builder->where('user_id', $userID); $builder->orWhereIn('id', function(BaseBuilder $builder) { return $builder->select('followed_id') ->from('followers') ->where('follower_id', $userID); }); $builder->orderBy('timestamp', 'DESC'); $results = $builder->get();
This is strange, $this->builder is an instance of BaseBuilder.
You may have found a bug here, I would report it on GitHub. What did you Try? What did you Get? What did you Expect?
Joined CodeIgniter Community 2009. ( Skype: insitfx )
I'd suggest perhaps trying to give the handle to the closure's function a different name to separate it from the first one... they both seem to be $builder (?)... maybe?
You are missing the use statement at the top of your class name for the BaseBuilder. If you will look at the error, the base builder is namespaced using App\\Models.
|
Welcome Guest, Not a member yet? Register Sign In |