0ステップ:一般
「/ home / nutt / workspace / htdocs」-プロジェクトが置かれ、Apacheが探しているフォルダー。
1ステップ:インストール
ソースをダウンロードしてプロジェクトフォルダーに解凍します
/home/nutt/workspace/htdocs
その後、フォルダーに直接移動してプロジェクトを作成します。 コマンドを実行した後、symfonyは必要なすべてのフォルダーを作成します。
nutt@nutt:~/workspace/htdocs$ sudo ./data/bin/symfony generate:project test
VirtualBoxでUbuntuのプロジェクトを開発しているので、次の調整は必要ないかもしれません。 開発パネルを表示するには(http://localhost/frontend_dev.php/)、次の場所で修正する必要があります。
~/workspace/htdocs/web/frontend_dev.php
if (!in_array(@$_SERVER[ 'REMOTE_ADDR' ], array ( '[ IP], ' ::80')))
次に、Apacheを構成する必要があります(/ etc / apache2 / sites-enabled / 000-default):
< VirtualHost [ IP ] :80 >
ServerName nutt.com
DocumentRoot /home/nutt/workspace/htdocs/web
php_admin_value register_globals Off
RewriteLog "/var/log/apache2/mod_rewrite.log"
RewriteLogLevel 2
Alias /sf /home/nutt/workspace/htdocs/data/web/sf
< Directory / home / nutt / workspace / htdocs / web >
Options Indexes FollowSymLinks MultiViews ExecCGI
Options All
AllowOverride All
Order allow,deny
Allow from all
</ Directory >
</ VirtualHost >
ステップ2:Doctrine
デフォルトでは、symfonyはPropelを使用します。 私のプロジェクトではDoctrine(sfDoctrinePlugin)に切り替える必要がありました。 このために
〜/ workspace / htdocs / configのProjectConfiguration.class.phpファイルを編集する必要があります
それは:
次のようになりました:public function setup()
{
$ this ->enablePlugins(array( 'sfDoctrinePlugin' ));
$ this ->disablePlugins(array( 'sfPropelPlugin' ));
}
public function setup()
{
$ this ->enablePlugins(array( 'sfDoctrinePlugin' ));
}
Propelの設定から削除:
nutt@nutt:~/workspace/htdocs/config$ sudo rm propel.ini
nutt@nutt:~/workspace/htdocs/config$ sudo rm schema.yml
ドクトリンの接続を追加します。
nutt@nutt:~/workspace/htdocs$ sudo ./data/bin/symfony configure:database --name=doctrine -- class =sfDoctrineDatabase "mysql:host=localhost;dbname=test" root root
ステップ3:Doctrineを使用してテーブルを作成する
〜/ workspace / htdocs / config / doctrine / schema.ymlのschema.ymlファイルを編集します
users:
columns:
name: { type: string (255), notnull: true , unique: true }
クラスを生成します:
nutt@nutt:~/workspace/htdocs$ ./data/bin/symfony doctrine:build-model
SQLクエリの構築:
nutt@nutt:~/workspace/htdocs$ ./data/bin/symfony doctrine:build-sql
SQLを実行します。
nutt@nutt:~/workspace/htdocs$ ./data/bin/symfony doctrine:insert-sql
質問:
- 1つのIDに対して3つの外部キーを持つテーブルがあります。 Doctrineでは、それらを次のように説明しました:
- 関係:
- Tblaccount:
- foreignAlias:tbltransaction
- ローカル:intinaccountid
- 外国:intaccountid
- タイプ:1
- foreignType:多く
- Tblaccount:
- foreignAlias:tbltransaction
- ローカル:intoutaccountid
- 外国:intaccountid
- タイプ:1
- foreignType:多く
- Tblaccount:
- foreignAlias:tbltransaction
- ローカル:intfeeaccountid
- 外国:intaccountid
- タイプ:1
- foreignType:多く
doctrine:build-sqlの後、最後の接続のみがSQLで生成されます:
- ALTER TABLE tbltransaction 外部 キーの 追加 (intfeeaccountid) 参照 tblaccount(intaccountid);
すべての外部キーを作成する方法は?
- プロジェクト全体があり、symfony自体は同じフォルダーにあります。 これは正しいですか? プロジェクトをどのように手配しますか?
ありがとう
PS
長い間、私は最後の声が友達の招待を受け取るのを待っていました。 ありがたいです。