2017-01-07 2 views
-2

Я получаю следующие результаты в laravel.Как добавить пару ключевых значений в объекты массива в laravel

[ {"id":"1","name":"Mite Salary"}, {"id":"2","name":"Riky"}, {"id":"3","name":"Raj"} ] 

Я хочу добавить еще один ключ-значение пары в возрасте: person_age и хотите выход как

[ {"id":"1","name":"Mite Salary", "age":'20'}, {"id":"2","name":"Riky", "age":'25'}, {"id":"3","name":"Raj", "age":"40"} ] 

Этот возраст приходит из базы данных MySQL, как $y = DB::table("age")->get(); На данный момент с учетом $ у = [20, 25,40];

Но я не получаю, как это сделать с помощью петли foreach. Пожалуйста, помогите мне в этом. Спасибо вам в ожидании

ответ

0

это то, что вы делаете, не очень хорошая логика, потому что вы не можете знать, сколько лет каждому человеку, потому что человек и возраст не связаны, что происходит, если один человек удален, вы удалите возраст с такими же id? вы должны сделать соотношение:

1) Добавить age_id к вашему лицу стол

2) Чтобы Person модель добавить соотношению

public function age() 
{ 
    return $this->belongsTo('App\Age'); 
} 

3) Теперь, когда вы используете $person->age->"Name of coulmn"

Если вы все еще хотите сделать это, вот путь

$i = 0; 
foreach($pearsons as $person) { 
    $person->age = $age[$i] 
    $i++ 
} 
+0

Actual В качестве примера я взял возраст. Есть еще одна вещь, которую я добавляю в объект. Я просто хочу знать, как я могу добавить новую пару значений ключа – Mohammed

+0

Вы работаете с коллекцией laravel или массивом объектов? – DokiCRO

+0

Фактически я делаю запрос, через который я получаю выше упоминание как вывод (первый). – Mohammed

0

На самом деле то, что я сделал, я использовал цикл по каждому элементу для $ х = [ {"id":"1","name":"Mite Salary"}, {"id":"2","name":"Riky"}, {"id":"3","name":"Raj"} ]

и в этом Еогеасп цикле я использовал

$x[$x]->age = implode(",",$y[$key]); Ниже окончательным, ` окончательный код:

foreach($x as $key => $value) 
    { 
    $x[$key]->av = implode(",",$y[$key]); 
    }` 
0
You'll do something like this. Lets say you have an array of Persons 

    $persons = [{"id":"1","name":"Mite Salary"}, {"id":"2","name":"Riky"}, {"id":"3","name":"Raj"}] 

    foreach ($persons as $person) { 
    $person['age'] = TableName::where("id","=", "$person->id")->get('age'); 
    } 
Смежные вопросы