Yii Framework Forum: مشکل در اضافه کردن رکورد جدید - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

مشکل در اضافه کردن رکورد جدید

#1 User is offline   Shahcheraghean 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 478
  • Joined: 12-December 12
  • Location:Mashhad, IRAN

Posted 27 April 2013 - 02:42 AM


با سلام.
توی مدل تصاویرم وقتی می خواد متد save را استفاده کنه توی دیتابیس دوتا رکورد خالی اضافه کرده و سپس رکورد اصلی را اضافه می کنه. مشکل چیه؟



public function actionCreate() {
    	$model = new Picture;

    	if (isset($_POST['Picture'])) {
        	$rnd = rand(0, 9999);
        	$model->attributes = $_POST['Picture'];

        	$uploadFile = CUploadedFile::getInstance($model, 'address');
        	
        	$model->address = "{$rnd}-{$uploadFile}";
        	
        	if ($model->save() && !empty($uploadFile)) {
                	$uploadFile->saveAs(Yii::app()->basePath . '/../upload/' . "{$rnd}-{$uploadFile}");
            	//$this->redirect(array('view', 'id' => $model->id));
        	}
    	}

    	$this->render('create', array('model' => $model, ));
	}

www.shgn.ir
www.shgn.ir/yii-framework/
yii2.swsco.ir
In a world without any fences or walls,Who needs Gates or Windows!
0

#2 User is offline   Parham Doustdar 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 21
  • Joined: 02-April 11

Posted 27 April 2013 - 02:46 AM

اگه not null کنید همه فیلدها رو چه اتفاقی می افته؟

0

#3 User is offline   Shahcheraghean 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 478
  • Joined: 12-December 12
  • Location:Mashhad, IRAN

Posted 27 April 2013 - 02:57 AM

اتفافا اون فیلد های اصلی همه NOT NULL هستند فقط فیلدهایی مثل created و updated نیستند. که فکر نمی کنم مشکلی ایجاد کنند.
اصلا این هم کل ساختار جدولش:


mysql> show columns from `jng_picture`;
+--------------+------------------+------+-----+---------+----------------+
| Field    	| Type         	| Null | Key | Default | Extra      	|
+--------------+------------------+------+-----+---------+----------------+
| id       	| int(10) unsigned | NO   | PRI | NULL	| auto_increment |
| address  	| varchar(500) 	| NO   | 	| NULL	|            	|
| product_id   | int(11) unsigned | NO   | 	| NULL	|            	|
| product_type | smallint(6)  	| YES  | 	| NULL	|            	|
| create_time  | datetime     	| YES  | 	| NULL	|            	|
| update_time  | datetime     	| YES  | 	| NULL	|            	|
| deleted  	| tinyint(1)   	| YES  | 	| NULL	|            	|
+--------------+------------------+------+-----+---------+----------------+

www.shgn.ir
www.shgn.ir/yii-framework/
yii2.swsco.ir
In a world without any fences or walls,Who needs Gates or Windows!
0

#4 User is offline   Parham Doustdar 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 21
  • Joined: 02-April 11

Posted 27 April 2013 - 03:08 AM

اِه! با این شرایط چطوری دو تا رکورد خالی ساخته می شه؟

ممنون.

0

#5 User is offline   Shahcheraghean 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 478
  • Joined: 12-December 12
  • Location:Mashhad, IRAN

Posted 27 April 2013 - 04:06 AM

منظور از خالی null نیست. شاید کراکتر space داده.
اگر توی کنترلر دقت کرده باشید. بنده میام یه عدد رندمی را به اول اسم فایل اضافه می کنم. و وقتی save می کنم میاد دوتا رکورد با عدد رندوم ذخیره می کنه بعد یک رکورد با عدد رندوم همراه با نام فایل را ذخیره می کند. وقتی اون عدد رندوم را برداریم دوتا رکورد خالی ذخیره می کند و بعد نام فایل را. برای مثال این نتیجه بعد از اضافه کردن یک رکورد جدید توی دیتابیس است:


mysql> select * from `jng_picture`;
+----+-------------+------------+--------------+---------------------+---------------------+---------+
| id | address 	| product_id | product_type | create_time 		| update_time 		| deleted |
+----+-------------+------------+--------------+---------------------+---------------------+---------+
| 57 | 8720-   	|      	2 |        	1 | 2013-04-27 13:35:10 | 2013-04-27 13:35:10 |	NULL |
| 58 | 3011-   	|      	2 |        	2 | 2013-04-27 13:35:12 | 2013-04-27 13:35:12 |	NULL |
| 59 | 6149-14.jpg |      	2 |        	2 | 2013-04-27 13:35:12 | 2013-04-27 13:35:12 |	NULL |
+----+-------------+------------+--------------+---------------------+---------------------+---------+
3 rows in set (0.00 sec)

در این مثال ردیف های ۵۷ و ۵۸ همون دوتا رکورد خالیایی هستند که گفتم.

www.shgn.ir
www.shgn.ir/yii-framework/
yii2.swsco.ir
In a world without any fences or walls,Who needs Gates or Windows!
0

#6 User is offline   Parham Doustdar 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 21
  • Joined: 02-April 11

Posted 27 April 2013 - 06:09 AM

اگه می شه empty($uploaded) رو بیارین اولین condition قبل از &&, ببینید تفاوتی می کنه؟

0

#7 User is offline   Shahcheraghean 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 478
  • Joined: 12-December 12
  • Location:Mashhad, IRAN

Posted 27 April 2013 - 06:36 AM


بیا داداش اصلا اون یک تیکه رو برداشتم ولی هیچ فرقی نکرد.:huh:

www.shgn.ir
www.shgn.ir/yii-framework/
yii2.swsco.ir
In a world without any fences or walls,Who needs Gates or Windows!
0

#8 User is offline   Hesam 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 64
  • Joined: 12-November 12
  • Location:Toronto

Posted 27 April 2013 - 07:37 AM

View PostShahcheraghean, on 27 April 2013 - 06:36 AM, said:


بیا داداش اصلا اون یک تیکه رو برداشتم ولی هیچ فرقی نکرد.:huh:



Put a die(); in the If (save) and see if stops saving extra record or not.

خیلی عجیبه اینچیزی که تو میگیری

0

#9 User is offline   Hesam 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 64
  • Joined: 12-November 12
  • Location:Toronto

Posted 27 April 2013 - 07:38 AM

View PostShahcheraghean, on 27 April 2013 - 06:36 AM, said:


بیا داداش اصلا اون یک تیکه رو برداشتم ولی هیچ فرقی نکرد.:huh:


از روی زمان ها هم میشه گفت یک چیزی در زمان های مختلف داره هی ذخیره میکنه

0

#10 User is offline   Shahcheraghean 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 478
  • Joined: 12-December 12
  • Location:Mashhad, IRAN

Posted 27 April 2013 - 07:55 AM

یعنی چی؟ منظورت از زمانها چیه؟ ممکنه به خاطر متد beforeSave() باشه؟

www.shgn.ir
www.shgn.ir/yii-framework/
yii2.swsco.ir
In a world without any fences or walls,Who needs Gates or Windows!
0

#11 User is offline   Hesam 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 64
  • Joined: 12-November 12
  • Location:Toronto

Posted 27 April 2013 - 08:22 AM

View PostShahcheraghean, on 27 April 2013 - 07:55 AM, said:

یعنی چی؟ منظورت از زمانها چیه؟ ممکنه به خاطر متد beforeSave() باشه؟


آره کد اونم اینجا بذار ببینیم چی توش داری- زمان ها یعنی دو ثانیه طول کشیده بین اولین ذخیره و بعدیش
کد رو حدس و خطا ایراد گیری کنی سریع می فهمی ایرادش کجاست
0

#12 User is offline   Shahcheraghean 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 478
  • Joined: 12-December 12
  • Location:Mashhad, IRAN

Posted 27 April 2013 - 08:30 AM

آخه چیزی نداره:

	protected function beforeSave() {
    	if (parent::beforeSave()) {
        	if ($this->isNewRecord) {
            	$this->create_time = $this->update_time = date('Y-m-d H:i:s');
        	} else {
            	$this->update_time = date('Y-m-d H:i:s');
        	}
        	return TRUE;
    	}
    	return FALSE;
	}


اون متد را کلا خارجش کردم ولی فرقی نکرد.

www.shgn.ir
www.shgn.ir/yii-framework/
yii2.swsco.ir
In a world without any fences or walls,Who needs Gates or Windows!
0

#13 User is offline   Hesam 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 64
  • Joined: 12-November 12
  • Location:Toronto

Posted 27 April 2013 - 09:20 AM

View PostShahcheraghean, on 27 April 2013 - 08:30 AM, said:

آخه چیزی نداره:

	protected function beforeSave() {
    	if (parent::beforeSave()) {
        	if ($this->isNewRecord) {
            	$this->create_time = $this->update_time = date('Y-m-d H:i:s');
        	} else {
            	$this->update_time = date('Y-m-d H:i:s');
        	}
        	return TRUE;
    	}
    	return FALSE;
	}


اون متد را کلا خارجش کردم ولی فرقی نکرد.




"{$rnd}-{$uploadFile}";
به جای این یک رشته ثابت بذار تو همه کدت ببین درست میشه
هم تو آدرس مدل هم تو سیو از
ببخشید من هی حدس و خطا می زنم ولی میگم شاید یکش کار کرد

0

#14 User is offline   Shahcheraghean 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 478
  • Joined: 12-December 12
  • Location:Mashhad, IRAN

Posted 27 April 2013 - 09:25 AM


آقا درست شد. داستان از جایه دیگه آب می خورد. از فعال بودن ajax valifation فرمم. :D;)

www.shgn.ir
www.shgn.ir/yii-framework/
yii2.swsco.ir
In a world without any fences or walls,Who needs Gates or Windows!
1

#15 User is offline   Hesam 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 64
  • Joined: 12-November 12
  • Location:Toronto

Posted 27 April 2013 - 09:42 AM

View PostShahcheraghean, on 27 April 2013 - 09:25 AM, said:


آقا درست شد. داستان از جایه دیگه آب می خورد. از فعال بودن ajax valifation فرمم. :D;)



آدم تو زندگی دلش به همینا خوشه :)
0

#16 User is offline   Shahcheraghean 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 478
  • Joined: 12-December 12
  • Location:Mashhad, IRAN

Posted 27 April 2013 - 09:56 AM

با عرض پوزش اینها به خاطر عدم تسلط بنده روی فریمورک است.

www.shgn.ir
www.shgn.ir/yii-framework/
yii2.swsco.ir
In a world without any fences or walls,Who needs Gates or Windows!
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users