У меня есть две проблемы с моим приложением CakePHP (оно мое первое в CakePHP). Я пытаюсь преобразовать старый php-сайт в торт.
1.Issue
У меня есть контроллер, который принимает параметр $ id, но данные поступают из соединенных таблиц, поэтому в кулинарной книге было что-то вроде этого
МОЙ Контроллер
dish_categories_controller.php
class DishCategoriesController extends AppController {
var $uses = array("DishCategory");
var $hasOne ='';
function get_categories($id)
{
$this->set('dishes',$this->DishCategory->find());
$this->layout = 'master_layout';
}
}
модель
dish_category.php
class DishCategory extends AppModel{
var $name = 'DishCategory';
var $hasOne = array(
'Dish' => array(
'className' => 'Dish',
'conditions' => array('Dish.id' => '1'),
'dependent' => true
)
);
}
Как вы можете видеть, Dish.id => '1' жестко запрограммирован, как сделать его динамическим, чтобы я передавал значение и делал что-то вроде Dish.if => $ id?.
Итак, это был мой первый выпуск.
Вторая проблема связана с представлением
Эта модель возвращает только одну запись, как я могу сделать так, чтобы она возвращала все, а также как я мог бы пройти через это, под кодом в представлении в настоящее время и форматом массива.
Это на мой взгляд
<?php
echo $dishes['DishCategory']['category_info'];
echo $dishes['DishCategory']['category_title'];
echo $dishes['Dish']['dish_name'];
echo $dishes['Dish']['dish_image'];
echo $this->Html->image($dishes['Dish']['dish_image'], array('alt' => 'CakePHP'))
?>
Формат массива
Array ( [DishCategory] => Array
( [id] => 1 [category_name] => Appetizers
[category_keywords] => appetizer, appetizers
[category_title] => Our Side Dishes
[category_info] => Test Test
[dish_id] => 1 )
[Dish] => Array ( [id] => 1
[dish_name] => Rice
[dish_disc] => The Best flavor ever
[dish_price] => 2.90 [dish_image] => /img/rice_chicken.jpeg [dish_category_id] => 1
[dish_price_label] => Delicious Arepa ) )
Буду признателен за помощь, чтобы помочь мне понять, как лучше это сделать. Спасибо.