It looks like you're new here. If you want to get involved, click one of these buttons!
Hi,
I had the following function which was working correctly in 1.2:
public function get_case_study_from_slug($slug)
{
$query = $this->db->get_where(self::$DB_TABLE, ['slug' => $slug], 1, 0)->result();
if (!sizeof($query)) return null;
$query = $query[0];
$pty_keys = $this->get_related_keys(['id'=>$query->id], ['products']);
if ($pty_keys) $products = $this->db->where_in('id',$pty_keys)->get('products')->result();
else $products = [];
$query->products_they_use = $products;
return $query;
}
Now I'm receiving the error: "Message: Too few arguments to function MY_Model::get_related_keys(), 2 passed in .../Case_studies_model.php on line 590 and at least 3 expected"
After comparing the function in 1.2 and 1.4, I can see an additional parameter is expected ($related_field), but it's unclear based on the documentation what that should be https://docs.getfuelcms.com/libraries/my_model#func_get_related_keys -- it looks like the documentation is maybe written wrong, and there is no "example" in the example box.
I kind of inherited this old code from a previous developer...so any direction or advice here would be helpful.
Comments
The doc block for that method does need to be updated. You are correct that
get_related_keys()
needs a third parameter which is the related model (e.g. 'Case_studies_model`)Actually...v1.2 had
$related_model
and that's what the former developer was using['products']
for there I believe...and that was working. The thing that seems to be missing in his call is$related_field
-- which is the newly added first parameter (not sure if it was in 1.3 or 1.4) inget_related_keys()
-- maybe I'm overlooking something really simple here...but I'm honestly not sure what that value should be based on his code.The
$related_field
should be the key of the relationship that's assigned in the model's$has_many
property. So hypothetically, there may be a has_many relationship defined in the model (near the top) with the key ofcase_studies
:Yeah, found this at the top:
I assume it's probably the "products_they use" key...will give that a shot and let you know. Cheers.
Yep...that seems to have done the trick. You're a lifesaver. Inheriting old code with very few comments is a fun ride, haha ;-)
No problem... I know how that is (and have been on the guilty party side as well).