ホームページ > バックエンド開発 > PHPチュートリアル > yiiの関係はどのように書くのでしょうか? YII に詳しい友人が、YII の確認を手伝ってくれます。

yiiの関係はどのように書くのでしょうか? YII に詳しい友人が、YII の確認を手伝ってくれます。

WBOY
リリース: 2016-06-23 14:27:53
オリジナル
975 人が閲覧しました

テーブル 1 (都市)
ID 名前コード
1 北京 0001
2 上海 0002


テーブル 2 (ユーザー)
ID ユーザー名 都市コード
1 シャオ・リー 0001
2 シャオ・ワン 0001 0001 3 シャオ・ホン 0002

2枚目テーブルの citycode フィールドは、最初のテーブルの code フィールドに対応します

これら 2 つのモデルの関係を YII モデルでどのように記述するか?
都市テーブル(City.php)の対応モデル

<?phpclass City extends CActiveRecord{	public static function model($className=__CLASS__)	{		return parent::model($className);	}		public function tableName()	{		return 'city';	}		public function relations()	{		return array(			//'user' => array(self::HAS_MANY, 'User', 'code'),这里不知道要怎么写,这样写不知道对不对?		);	}//…………}
ログイン後にコピー


ユーザーテーブル(User.php)の対応モデル
<?phpclass User extends CActiveRecord{	public static function model($className=__CLASS__)	{		return parent::model($className);	}		public function tableName()	{		return 'user';	}		public function relations()	{		return array(			//'city' => array(self::BELONGS_TO, 'City', 'citycode'),这里不知道要怎么写,这样写不知道对不对?		);	}//…………}
ログイン後にコピー



上で書いた方法に従って、ビューファイル内で次のように使用します: $data->city->name または $data->user->username は間違っています。
YII の初心者なので、関係の書き方がわかりません。書き方を知っている友人に指導してもらいたいです。


ディスカッション(解決策)への返信

誰も解決を手伝ってくれませんか?

私も初心者なので、私の意見を言わせてください!

まず第一に、2 つのテーブル間の関連付けには外部キー制約が原因で問題があります。また、最初のテーブルのフィールド citycode は主キーではないため、外部キーとして使用できません。 2 つのテーブル間の接続について話すことは不可能です。


次のようにテーブルが作成される場合:
create table city(
cityCode varchar(25) not null 主キー,
name varchar(128) not null,
);

create table user(
id int( 11 ) 主キー、
name varchar(128) not null、
cityCode varchar(25) not null、
外部キー(cityCode) 参照 city(cityCode)、
); 外部キーを確立した後、
説明関連付け関係:
ユーザー:
return array('user'=>array(self::BELONGS_TO, 'City', 'cityCode'));

City:
return array('city'=>array(self: : HAS_MANY、'ユーザー'、'都市コード'));

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート