пятница, 29 апреля 2011 г.

Проектирование первого сайта на Yii

В качестве первого проекта на Yii я решил написать сайт - каталог продукции. Сначала самый простой, а по мере изучения фреймворка расширять его новыми возможностями.
Надо сказать, что перед этим я пробовал с нуля сделать тот самый блог, который описан в примерах к фреймворку. Дошел до середины, и застрял намертво - еще раз убедился в том, что не так то и просто начать Yii с нуля.
Мой каталог такой: есть товары, каждый из которых принадлежит к какой либо одной категории. У товаров есть название, описание. У категорий есть название и описание. Так же должна быть возможность скрывать как каждый товар по отдельности, так и категории целиком.
Таким образом структура базы данных, такая:

Модель базы данных в нотации UML
Базу данных я назвал catalog. В файле Z:\home\catalog.loc\www\protected\config\main.php подключил базу данных:
'db'=>array(
'connectionString' => 'mysql:host=localhost;dbname=catalog',
'emulatePrepare' => true,
'username' => 'root',
'password' => '',
'charset' => 'utf8',
),
И активировал GII генератор кода (В том же файле main.php). О том, что это надо сделать именно так, и зачем это нужно узнал из мануалов, там про это хорошо сказано.

'modules'=>array(
 // uncomment the following to enable the Gii tool
       
'gii'=>array(
'class'=>'system.gii.GiiModule',
'password'=>'8246555',
// If removed, Gii defaults to localhost only. 
//Edit carefully to taste.
'ipFilters'=>array('127.0.0.1','::1'),
),
       
),

В мануале хорошо описано как пользоваться этим GII. С помощью него я создал модели, контроллеры и CRUD.
После этого уже стало возможным заполнять базу данных категориями и товарами! Пока еще товары не связаны с категориями и выглядит это все стремно, но уже кое-что получается.
Продолжение следует.

7 комментариев:

  1. Я думаю, что не я один наступлю на эти грабли.

    tbl_category_id - это название индекса, а не новое поле в таблице! Лично я вначале не обратил на это внимание и создал такое поле, а потом долго ломал голову, почему в посте от 10 мая не работает критерий сортировки category.shown=1.

    Если поле уже создано, то для исправления ситуации необходимо просмотреть файлы модели, котроллера и представления и аккуратно удалить все, что связано с tbl_category_id.

    ОтветитьУдалить
  2. Спасибо за комментарий! Я исправил картинку, чтобы никто не путался.

    ОтветитьУдалить
  3. Это не uml же.
    Вроде это mysql workbench

    ОтветитьУдалить
  4. Да, точно! mysql workbench
    Он MySql сам генерирует

    ОтветитьУдалить
  5. автор ты м**ак!!!!!! а... злость!!!
    в общем то ты молодец. но я уже понадеялся что-то человекопонятное увидеть. а тут такое....
    я вот вообще не представляю куда твой код вбивать.
    остановился на создании первого приложения с сайта. и вот что может yii кроме как создавать записи в базе у меня очень смутное представление. напиши в стиле "для самых маленьких" ту же самую простую авторизацию и плюс к карме тебе обеспечен. почему вся документация написана в виде "тут мы лепим куличики из глины" -> .... -> наши огромные человекоподобные роботы (построенные нами же) бороздят просторы галактики. напишите хоть кто-нибудь просто. по. шагам. крик души уже

    ОтветитьУдалить
    Ответы
    1. Так может вы самый первый пост не читали? Там, где этот самый Yii устанавливается..
      http://psyhos.blogspot.com/2011/04/blog-post.html

      Удалить