Welcome Guest, Not a member yet? Register   Sign In
Adding param with value to model
#1

(This post was last modified: 07-08-2022, 11:02 AM by mazz.)

I am using CI4 and I have this code:
Code:
    $campaignUserModel = new CampaignUserModel();
    $subcontractors = $campaignUserModel
        ->select('campaigns_users.*, users.fullname user_fullname')
        ->join('users', 'users.id = campaigns_users.user_id')
        ->where('campaign_id', $id)
        ->findAll();

    $postModel = new PostModel();
    foreach ($subcontractors as $subcontractor) {
        $subcontractor_posts = $postModel
            ->where('user_id', $subcontractor['id'])
            ->where('campaign_id', $id)
            ->countAllResults();

        $subcontractor['posts_count'] = $subcontractor_posts;

        echo "<pre>";
        var_dump($subcontractor);
        echo "</pre>";
    }

    echo "<pre>";
    var_dump($subcontractors);
    echo "</pre>";

In first var_dump() I see:

array(7) {
  ["id"]=>
  string(1) "5"
  ["campaign_id"]=>
  string(1) "3"
  ["user_id"]=>
  string(1) "8"
  ["quantity"]=>
  string(1) "3"
  ["status"]=>
  string(1) "1"
  ["user_fullname"]=>
  string(19) "Kacper Podwykonawca"
  ["posts_count"]=>
  int(0)
}

so posts_count is added. But when foreach finished and I display second var_dump() with array of all subcontractor i can't see posts_count

Where am I making a mistake?
Reply
#2

$subcontractor and $subcontractors
Reply
#3

(This post was last modified: 07-09-2022, 12:21 AM by iRedds.)

The $subcontractor variable is not related to the $subcontractors variable in any way.
But there are 3 ways how to solve.

1. Object.
$subcontractors must contain an array of objects.
PHP Code:
foreach ($subcontractors as $subcontractor) {
  
// ...
  
$subcontractor->posts_count $subcontractor_posts;


2. Reference.
Pass value by reference
PHP Code:
foreach ($subcontractors as &$subcontractor) {



3. Full path
Work with parent array
PHP Code:
foreach ($subcontractors as $key => $subcontractor) {
  
// ...
  
$subcontractors[$key]['posts_count'] = $subcontractor_posts;

Reply




Theme © iAndrew 2016 - Forum software by © MyBB