jobeet 03day symfony 1.2
3日目です。
http://www.symfony-project.org/jobeet/1_2/Propel/en/03
テーブル作成用の schema.yml を作成します。
# vi config/schema.yml
propel:
jobeet_category:
id: ~
name: { type: varchar(255), required: true, index: unique }
以下 省略
DB領域の作成
mysql のadmin ツールを使用します。
ユーザは root
パスワードは mYsEcret
で jobeet 領域を作成します。
# mysqladmin -uroot -pmYsEcret create jobeet
databases.yml を作成します。
configure:database databases.yml を作成するオプションになります。
# symfony configure:database “mysql:host=localhost;dbname=jobeet” root mYsEcret
schema.yml より sql を作成します。
# symfony propel:build-sql
data/sql/lib.model.schema.sql が作成されます。
作成されたSQLをDBへ流します。
# symfony propel:insert-sql
DBを確認するとテーブルが作成されています。
補足で確認が要らない場合は下記で実行します。
# symfony propel:insert-sql –no-confirmation
ORMの作成
# symfony propel:build-model
ORMが作成されたことを確認します。
# ls -la lib/model
キャッシュのクリア
# symfony cc
初期データの作成
data/fixtures 以下に インサート用のデータを用意します。
# vi data/fixtures/010_categories.yml
JobeetCategory:
design: { name: Design }
programming: { name: Programming }
manager: { name: Manager }
administrator: { name: Administrator }
# vi data/fixtures/020_jobs.yml
JobeetJob:
job_sensio_labs:
category_id: programming
type: full-time
company: Sensio Labs
logo: sensio-labs.gif
url: http://www.sensiolabs.com/
position: Web Developer
以下省略
上記のデータをインサートします。
# symfony propel:data-load
モジュールの作成 (CRUD)
# symfony propel:generate-module –with-show –non-verbose-templates frontend job JobeetJob
とここでエラーが発生しました。
調べによると、下記を先に実行しないとエラーになります。チュートリアルが間違っているそうです。
# symfony propel:build-forms
# symfony cc
下記にアクセスします。
http://jb.77jp.net/frontend_dev.php/job
Edit でエラーが発生するので、下記を修正。
# vi lib/model/JobeetCategory.php
class JobeetCategory extends BaseJobeetCategory
{
public function __toString()
{
return $this->getName();
}
}
# vi lib/model/JobeetJob.php
class JobeetJob extends BaseJobeetJob
{
public function __toString()
{
return sprintf(‘%s at %s (%s)’, $this->getPosition(), $this->getCompany(), $this->getLocation());
}
}
# vi lib/model/JobeetAffiliate.php
class JobeetAffiliate extends BaseJobeetAffiliate
{
public function __toString()
{
return $this->getUrl();
}
}
新規作成ができるようになりました。
