2012年2月
« 1月    
 12345
6789101112
13141516171819
20212223242526
272829  

jobeet 03day symfony 1.2

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();
}
}

新規作成ができるようになりました。

Comments are closed.