Вы никогда не получите доступ к переменной $ dish в цикле foreach.
Попробуйте
$dish['Dish']['dish_name'];
вместо
$dishes['Dish']['dish_name'];
и т.д.
Кроме того, вы получите ошибку, потому что первый элемент в вашем массиве - это не Dish, а Dish_Category Таким образом, либо удалите этот элемент из массива, либо используйте простой оператор if перед доступом к $ dish, например:
if($dish['dish_name'])
//DO STUFF HERE
Кроме того, нет причины для стольких
<?php ?>
теги. Не могли бы вы поместить целый блок кода в один?