Professional CodeIgniter, Thomas Myer

Chapter 4: Creating the Main Web Site
79

The final output of the
getAllCategories()

function is a multidimensional array. Here ' s a snippet
from that array as seen through the
print_r()

function, so you can visualize the discussion:
[0] =
>
Array
(
[id] =
>
1
[name] =
>
shoes
[shortdesc] =
>
[longdesc] =
>
[status] =
>
active
[parentid] =
>
0
)
[1] =
>
Array
(
[id] =
>
2
[name] =
>
shirts
[shortdesc] =
>
[longdesc] =
>
[status] =
>
active
[parentid] =
>
0
)
[2] =
>
Array
(
[id] =
>
3
[name] =
>
pants
[shortdesc] =
>
[longdesc] =
>
[status] =
>
active
[parentid] =
>
0
)

Unfortunately, the view itself is looking for a flat array, with a key that corresponds to the category ID
and a value that corresponds to the category name.

There are three possible solutions to this problem. The first is to rewrite the view to handle a
multidimensional array. The second is to rewrite the model function to output the array as a flat list. The
third is to create a different model function for your navigation and use that instead.

Of all the options, the third makes the most sense. Think about it: Why send the view more data than it
needs? Why shouldn ' t you hand the view just what it needs, in a concise, neat package? Another thing to
think about: Is it possible you may need the
getAllCategories()

function at some point? Of course!
So it ' s good to keep it.

Go ahead and create a new model function called
getCategoriesNav()

. This new function will be
dedicated solely to extracting category data needed for the navigation:
function getCategoriesNav(){
$data = array();
$Q = $this-
>
db-
>
get(`categories');
if ($Q-
>
num_rows()
>
0){
c04.indd 79
c04.indd 79
6/10/08 5:34:18 PM
6/10/08 5:34:18 PM


Другие страницы

 
Cкачать книги бесплатно без регистрации в электронном виде (pdf, chm, txt).Вы можете читать книги онлайн на нашем сайте литературного портала книг.Большая подборка учебников, пособий, интересных книг.Электронные книги на английском языке скачать бесплатно без смс.

OK

Loading...
...
Закрыть