это моя категория_модели:
$this->has_many['details'] = array('foreign_model'=>'detail_category_m','foreign_table'=>'m_category_detail','foreign_key'=>'mcat_id','local_key'=>'mcat_id');
это моя detail_category_model:
$this->has_one['category'] = array('foreign_model'=>'category_m','foreign_table'=>'m_category','foreign_key'=>'mcat_id','local_key'=>'mcat_id_detail');
Я поместил этот код в мой контроллер CI:
$data['all']= $this->detail_category_m->with_category()->get_all();
когда-то я foreach и я var_dump () в виду, как это выглядит:
object(stdClass)#32 (4) { ["mcat_id_detail"]=> string(1) "1" ["mcat_id"]=> string(1) "1" ["detail_cat_name"]=> string(5) "asdas" ["category"]=> object(stdClass)#35 (2) { ["mcat_id"]=> string(1) "1" ["cat_name"]=> string(7) "Travels" } } object(stdClass)#36 (4) { ["mcat_id_detail"]=> string(1) "2" ["mcat_id"]=> string(1) "1" ["detail_cat_name"]=> string(6) "asdsad" ["category"]=> object(stdClass)#37 (2) { ["mcat_id"]=> string(1) "2" ["cat_name"]=> string(7) "Voucher" } }
Как только я напечатал print_r, это получилось так:
stdClass Object ( [mcat_id_detail] => 1 [mcat_id] => 1 [detail_cat_name] => asdas [category] => stdClass Object ( [mcat_id] => 1 [cat_name] => Travels ) ) stdClass Object ( [mcat_id_detail] => 2 [mcat_id] => 1 [detail_cat_name] => asdsad [category] => stdClass Object ( [mcat_id] => 2 [cat_name] => Voucher ) )
Как только я напечатал print_r в контроллере, вот так:
Array ( [0] => stdClass Object ( [mcat_id_detail] => 1 [mcat_id] => 1 [detail_cat_name] => asdas [category] => stdClass Object ( [mcat_id] => 1 [cat_name] => Travels ) ) [1] => stdClass Object ( [mcat_id_detail] => 2 [mcat_id] => 1 [detail_cat_name] => asdsad [category] => stdClass Object ( [mcat_id] => 2 [cat_name] => Voucher ) ) )
Как я могу получить cat_name и mcat_id?
Я сделал foreach, как это:
foreach($all as $row) :
echo $row->cat_name;
endforeach;
но идет ошибка; Пожалуйста, помогите мне, как получить данные, которые я хотел.
Попробуй это
Ввиду
foreach ($all as $value) {
echo $value['cat_name'];
echo "<br>";
echo $value['mcat_id'];
}
Когда вы используете метод с _ * (), вы должны указать поля, которые вы хотите получить:
$data['all']= $this->detail_category_m->with_category('fields:cat_name,mcat_id')->get_all();
Теперь, на ваш взгляд, вы можете сделать что-то вроде этого:
foreach($all as $detail)
{
echo $detail->detail_cat_name;
foreach($detail->category as $categ)
{
echo $categ->cat_name;
echo $categ->mcat_id;
}
}
Надеюсь, это помогло …