Bir önceki yazımda oluşturduğumuz ziyaretçi defterine herkes yazı yazabiliyordu. Şimdi de bu ziyaretçi defterine yazı yazmak için üye girişi yapma zorunluluğu ekleyeceğiz.
Ziyaretçi defterinde yazdığımız yazıların saklanacağı bir tablo oluşturmuştuk. Şimdi de kullanıcı bilgilerinin saklanacağı bir tablo oluşturacağız. Fakat bu tabloyu oluşturmadan önce diğer tablomuzda bir değişiklik yapmamız lazım. Ziyaretçi defterinde oluşturduğumuz tablo şu şekildeydi:
|
|
| CREATE TABLE `defter`.`posts` (
| | `id` INT( 8 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
| | `created` DATETIME NOT NULL ,
| | `title` VARCHAR( 128 ) NOT NULL ,
| | `body` TEXT NOT NULL ,
| | `user` VARCHAR( 32 ) NOT NULL
| | ) ENGINE = MYISAM |
|
Buradaki
user alanını
user_id olarak değiştirip
VARCHAR( 32 ) yerine de
INT( 8 ) yazıyoruz. Değişiklik yaptıktan sonraki hali:
|
|
| CREATE TABLE `defter`.`posts` (
| | `id` INT( 8 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
| | `created` DATETIME NOT NULL ,
| | `title` VARCHAR( 128 ) NOT NULL ,
| | `body` TEXT NOT NULL ,
| | `user_id` INT( 8 ) NOT NULL
| | ) ENGINE = MYISAM |
|
Bunu yapmadan önce
user bir string değere karşılık geliyordu ve ziyaretçi defterine yazı eklerken kullanıcı tarafından giriliyordu. Şimdi ise
user_id oldu ve bir sayıya karşılık geliyor. Yani birazdan oluşturacağımız
users tablosunda yer alan kullanıcıların id değeri.
Ali isminde bir kullanıcımız olsun. Ali'nin id'si 17 olsun ve Ali ziyaretçi defterine bir yazı eklemek için giriş yapsın. Ali, ziyaretçi defterine bir yazı yazdığında bu yazının
user_id değeri 17 olur. Yazıyı ekrana yazdırırken de id'si o yazının user_id değeri olan kullanıcın adı yani
name değeri veritabanından okunur. Şimdi ziyaretçi defterimizi geliştirmeye başlayalım. Ziyaretçi defterini oluşturmadıysanız
buradan oluşturduktan sonra yazının geri kalan kısmını okumaya devam edin.
Oluşturduğumuz veritabanında (defter)
users isminde bir tablo oluşturalım.
|
|
| CREATE TABLE `defter`.`users` (
| | `id` INT( 8 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
| | `username` VARCHAR( 32 ) NOT NULL ,
| | `password` VARCHAR( 64 ) NOT NULL ,
| | `email` VARCHAR( 128 ) NOT NULL ,
| | `created` DATETIME NOT NULL
| | ) ENGINE = MYISAM |
|
Model OluşturmaŞimdi cakeyol/app/models/ dizini içine
user.php ismiyle user modelimizi oluşturup içine şunları yazalım:
|
|
| <?php
| | class User extends AppModel
| | {
| | var $name = 'User';
| | var $hasMany = 'Post';
| | }
| | ?> |
|