mostafa_shoakry
یک شنبه 06 بهمن 1392, 19:39 عصر
با سلام و خسته نباشید
کارایی که انجام دادم اینها هستن:
ارسال اطلاعات به فرم ویو برای انجام عمل ویرایش:
<a href="<?php echo Yii::app()->createUrl('admin/links/view/id/'.$link->attributes['id']); ?>" class="ctrlButton">
<img src="<?php echo Yii::app()->baseUrl; ?>/assets/admin/img/icons/14x14/cog2.png" alt="">
</a>
فیلتر در کنترلر و متد view
private $_link = null;
public function filters()
{
return array(
'accessControl', // perform access control for CRUD operations
'linkContext + view '
);
}
public function filterLinkContext($filterChain)
{
if(isset($_GET['id']))
{
$link =Links::model()->findAllByPk($_GET['id']);
if( $link == null)
{
throw new CHttpException(404 , 'لینک مورد نظر یافت نشد.');
}
$this->_link = $link;
}else{
throw new CHttpException(403 , 'لینک مورد نظر یافت نشد.');
}
$filterChain->run();
}
public function actionView()
{
$model = new Links;
$linkBy = $model->findByPk($this->_link[0]->attributes);
if($linkBy == null)
{
throw new CHttpException(404, 'لینک موردنظر یافت نشد.');
}
$links = Links::model()->findAll(array("order" => "id desc"));
$this->render('view',array('content' => $linkBy,'links' => $links));
}
و ویو من :
<form id="validate" method="post" action="<?php echo Yii::app()->createUrl('admin/links/edit') ?>">
<div class="formWizard">
<div class="row-fluid">
<div class="span2">
<span class="fLabel">عنوان</span>
</div>
<div class="span10">
<?php echo CHtml::activeTextField($content,'title',array('id' =>'name')) ?>
</div>
</div>
</div>
<div class="formWizard">
<div class="row-fluid">
<div class="span2">
<span class="fLabel">لینک</span>
</div>
<div class="span10">
<?php echo CHtml::activeTextField($content,'destination') ?>
</div>
</div>
</div>
<div class="formButtons">
<div class="row-fluid">
<div class="span12" align="right">
<button type="submit" class="button sButton bOlive">ثبت</button>
<button type="reset" class="button sButton bSky">پاک کردن</button>
</div>
</div>
</div>
</form>
اینم متد edit من در کنترلر
public function actionEdit()
{
///
//var_dump($update);
$model = new Links;
if(isset($_POST['Links']))
{
$model->attributes = $_POST['Links'];
if($model->validate())
{
$update = Links::model()->updateByPk($this->_linkId, array(
'title' => $_POST['Links']['title'],
'destination' => $_POST['Links']['destination']
)
);
if($update == 1)
{
Yii::app()->user->setFlash('success', $update);
}
else {
Yii::app()->user->setFlash('success', $this->_linkId);
}
$this->redirect(array('/admin/links/index'));
}
else
{
Yii::app()->user->setFlash('error', $model->getErrors());
$this->redirect(array('index'));
}
}
$links = $model->findAll(array("order" => "id desc"));
$this->render('index',array('model' => $model,'links' => $links));
}
مشکل اینجاست که من چون فیلتر رو برای متد view تنظیم کردم واسه edit کار نمیکنه.حالا سوالم اینه که آیا من باید مقدار id آن رکوردی که قراره ویرایش بشه رو از طریق فرم بفرستم مثل این:
<a href="<?php echo Yii::app()->createUrl('admin/links/view/id/'.$link->attributes['id']); ?>" class="ctrlButton">
<img src="<?php echo Yii::app()->baseUrl; ?>/assets/admin/img/icons/14x14/cog2.png" alt="">
</a>
و یا آیا راه حل دیگه هم هست؟ یعنی تعریف فیلتر و یا هر روش دیگه
ممنون میشم منو راهنمایی کنین :چشمک:
کارایی که انجام دادم اینها هستن:
ارسال اطلاعات به فرم ویو برای انجام عمل ویرایش:
<a href="<?php echo Yii::app()->createUrl('admin/links/view/id/'.$link->attributes['id']); ?>" class="ctrlButton">
<img src="<?php echo Yii::app()->baseUrl; ?>/assets/admin/img/icons/14x14/cog2.png" alt="">
</a>
فیلتر در کنترلر و متد view
private $_link = null;
public function filters()
{
return array(
'accessControl', // perform access control for CRUD operations
'linkContext + view '
);
}
public function filterLinkContext($filterChain)
{
if(isset($_GET['id']))
{
$link =Links::model()->findAllByPk($_GET['id']);
if( $link == null)
{
throw new CHttpException(404 , 'لینک مورد نظر یافت نشد.');
}
$this->_link = $link;
}else{
throw new CHttpException(403 , 'لینک مورد نظر یافت نشد.');
}
$filterChain->run();
}
public function actionView()
{
$model = new Links;
$linkBy = $model->findByPk($this->_link[0]->attributes);
if($linkBy == null)
{
throw new CHttpException(404, 'لینک موردنظر یافت نشد.');
}
$links = Links::model()->findAll(array("order" => "id desc"));
$this->render('view',array('content' => $linkBy,'links' => $links));
}
و ویو من :
<form id="validate" method="post" action="<?php echo Yii::app()->createUrl('admin/links/edit') ?>">
<div class="formWizard">
<div class="row-fluid">
<div class="span2">
<span class="fLabel">عنوان</span>
</div>
<div class="span10">
<?php echo CHtml::activeTextField($content,'title',array('id' =>'name')) ?>
</div>
</div>
</div>
<div class="formWizard">
<div class="row-fluid">
<div class="span2">
<span class="fLabel">لینک</span>
</div>
<div class="span10">
<?php echo CHtml::activeTextField($content,'destination') ?>
</div>
</div>
</div>
<div class="formButtons">
<div class="row-fluid">
<div class="span12" align="right">
<button type="submit" class="button sButton bOlive">ثبت</button>
<button type="reset" class="button sButton bSky">پاک کردن</button>
</div>
</div>
</div>
</form>
اینم متد edit من در کنترلر
public function actionEdit()
{
///
//var_dump($update);
$model = new Links;
if(isset($_POST['Links']))
{
$model->attributes = $_POST['Links'];
if($model->validate())
{
$update = Links::model()->updateByPk($this->_linkId, array(
'title' => $_POST['Links']['title'],
'destination' => $_POST['Links']['destination']
)
);
if($update == 1)
{
Yii::app()->user->setFlash('success', $update);
}
else {
Yii::app()->user->setFlash('success', $this->_linkId);
}
$this->redirect(array('/admin/links/index'));
}
else
{
Yii::app()->user->setFlash('error', $model->getErrors());
$this->redirect(array('index'));
}
}
$links = $model->findAll(array("order" => "id desc"));
$this->render('index',array('model' => $model,'links' => $links));
}
مشکل اینجاست که من چون فیلتر رو برای متد view تنظیم کردم واسه edit کار نمیکنه.حالا سوالم اینه که آیا من باید مقدار id آن رکوردی که قراره ویرایش بشه رو از طریق فرم بفرستم مثل این:
<a href="<?php echo Yii::app()->createUrl('admin/links/view/id/'.$link->attributes['id']); ?>" class="ctrlButton">
<img src="<?php echo Yii::app()->baseUrl; ?>/assets/admin/img/icons/14x14/cog2.png" alt="">
</a>
و یا آیا راه حل دیگه هم هست؟ یعنی تعریف فیلتر و یا هر روش دیگه
ممنون میشم منو راهنمایی کنین :چشمک: