Masalah Primary Key (Not Integer)

Para masta sekalian…

Ini postingan mirip Cara Edit data Jika Primary Key berupa varchar postingan itu bisa mengatasi masalah tipe varchar yang datanya hanya angka (Jika huruf tidak bisa).

ane mau nanya, gmn caranya ya menampilkan data(view) jika primary key berupa huruf(bukan angka),




NIP(varchar)    | Nama

123             | Toni

123abc          | Dono 



=>controller


	public function loadModel($id)

	{       

		$model=Pegawai::model()->findByPk($id);

		if($model===null)

			throw new CHttpException(404,'The requested page does not exist.');

		return $model;

	}

ane pakai cara itu hasilnya:

Jika saya view Toni(id=123) berhasil,

Jika ane view Dono(id=123abc)gagal gan, muncul pesan


The system is unable to find the requested action "123abc".

terus ane coba pake cara lain kayak gini, tapi hasilnya sama gan kaya di atas, ga da perubahan.


	public function loadModel($id)

	{      


               $model=Pegawai::model()->findByAttributes(array('NIP'=>$id));

		if($model===null)

			throw new CHttpException(404,'The requested page does not exist.');

		return $model;

	}

gimana solusinya ya? Mohon bantuannya gan? :(

Apakah agan mengaktifkan UrlManager di configurasi Yii?

Kalau ya mungkin bisa posting rule url managernya… Ane curiga bisa muncul error itu gara2 rule manager nya salah. Makanya errornya bilang "action xyz not found"

sebelumnya thanks udah di respon, ya gan ane ubah jadi kayak gini


		'urlManager'=>array(

			'urlFormat'=>'path',

			'rules'=>array(

				'<controller:\w+>/<id:\d+>'=>'<controller>/view',

				'<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',

				'<controller:\w+>/<action:\w+>'=>'<controller>/<action>',

			),

		),

tuh gmn ya?

coba ubah rule pertama yang ini:

‘<controller:\w+>/<id:\d+>’=>’<controller>/view’,

menjadi ini:

‘<controller:\w+>/<id:\w+>’=>’<controller>/view’,

Kalo view pake itu dah bisa gan, tapi pas ane coba create malah ga bisa, muncul gini


The requested page does not exist.

teruss…ane coba rule ke dua jadi kaya gini


'<controller:\w+>/<action:\w+>/<id:\w+>'=>'<controller>/<action>',

tapi tetep ga bisa, gmn ya gan ? :unsure:

oh ya. ane gak memperkirakan rules lain… coba kita ganti rule sebelumnya biar muncul tulisan "view" di url saja.

‘<controller:\w+>/view/<id:\w+>’=>’<controller>/view’,

‘<controller:\w+>/<action:\w+>/<id:\d+>’=>’<controller>/<action>’,

‘<controller:\w+>/<action:\w+>’=>’<controller>/<action>’,

wah… mantap gan, akhirnya bisa. Kalo boleh tau kenapa bisa gitu ya, ane kurang paham konsepnya, mungkin ada link yg bisa ane baca terkait UrlManager.

Thanks 4 all junxiong.

The good jobs :D

Saya rasa Guide yang bisa menjadi tempat awal yang bagus untuk belajar:

http://www.yiiframework.com/doc/guide/1.1/en/topics.url

sekedar tambahan info, rules dibaca dari atas ke bawah, jadi kalau rules pertama terpenuhi maka Yii akan berhenti sampai situ. Itu sebabnya, urutan sangat penting.