سلام من از روی پکیج استاد شهرکی یه سایت درست کردم
تو نمایش محصول تو صفحه اول مشکلی نیست اما وقتی میره جزییات محصول دیگه مدل رو نمی شناسه.و ارور میده . اگر کسی میتونه کمکم کنه ممنون میشم.
خب چطوری آخه
متن ارور چیه
اینجا قرار بدید تا بشه راهنمایی کرد.
کدتون رو بگذارین. منظورم اکشن view هست.
دوستان این کد صفحه اول ک محصول رو نشون میده و مشکلی نیست.
<div class="col-md-2" id="product" >
<div class="thumbnail" id="thumbnail">
<a href="<?php echo Yii::app()->createUrl('products/Viewproduct', array('id'=>$model->id)); ?>">
<img alt="<?php echo CHtml::encode($model->name); ?>" class="img" style="height:150px;"
src="<?php echo Yii::app()->baseUrl.$model->pic; ?>" /></a>
<div id="caption">
<a style="text-decoration:none; color:#000;"
href="<?php echo Yii::app()->createUrl('products/Viewproduct', array('id'=>$model->id)); ?>">
<?php echo CHtml::encode($model->name); ?>
</a></div>
<div id="add" style="background-color:#099; border:solid 1px #FF0000;">
<span style="color:#093; width:50%; background-color:#0F0; float:right; font-size:16px; margin:7px;">
<?php echo CHtml::encode($model->price); ?> $</span>
<a class="btn btn-primary btn-xs pull-left" href="<?php echo Yii::app()->createUrl('products/add', array('id'=>$model->id)); ?>"><span class="fa fa-plus"></span></a>
</div>
</div></div>
و این کد هم برای صفحه دوم ک میره جزییات محصول رو نشون بده هست ک ارور میده.
<div class="col-md-2" id="product" >
<div class="thumbnail" id="thumbnail">
<img style="width:190px; height:160px; aling:center;" src="<?php echo Yii::app()->baseUrl.$model->pic; ?>" />
<div id="caption">
<a style="text-decoration:none; color:#000;" href="#">
<?php echo CHtml::encode($model->name); ?>
</a></div>
<div id="add" style="background-color:#099; border:solid 1px #FF0000;">
<span style="color:#093; width:50%; background-color:#0F0; float:right; font-size:16px; margin:7px;">
<?php echo CHtml::encode($model->price); ?> $</span>
<a href="<?php echo Yii::app()->createUrl('products/add', array('id'=>$model->id)); ?>">
<span class="glyphicon glyphicon-shopping-cart" style="color:#FC973D; font-size:22px; background-color:#90C; width:30%; text-align:left; margin:7px; float:left;">
</span></a>
</div>
</div></div>
و این هم ارورصفحه است .
نقل قول:Undefined variable: model
C:wampwwwkalayerozprotectedviewsproductsh.php(8)
01
02
03
04
05 <div class="col-md-2" id="product" >
06
07 <div class="thumbnail" id="thumbnail">
08 <img style="width:190px; height:160px; aling:center;" src="<?php echo Yii::app()->baseUrl.$model->pic; ?>" />
09 </a>
10
11
12
13 <div id="caption">
14 <a style="text-decoration:none; color:#000;"
15 href="#">
16 <?php echo CHtml::encode($model->name); ?>
17 </a></div>
18
19
20 <div id="add" style="background-color:#099; border:solid 1px #FF0000;">
Stack Trace
#0
+
C:wampwwwframeworkwebCBaseController.php(126): require("C:wampwwwkalayerozprotectedviewsproductsh.php")
#1
+
C:wampwwwframeworkwebCBaseController.php(95): CBaseController->renderInternal("C:wampwwwkalayerozprotectedviewsproductsh.php", null, true)
#2
+
C:wampwwwframeworkwebCController.php(869): CBaseController->renderFile("C:wampwwwkalayerozprotectedviewsproductsh.php", null, true)
#3
+
C:wampwwwframeworkwebCController.php(782): CController->renderPartial("h", null, true)
#4
–
C:wampwwwkalayerozprotectedcontrollersProductsController.php(154): CController->render("h")
149 #######################################################################
150
151 public function actionViewproduct($id){
152
153 echo $id;
154 $this->render('h');
155 }
156
157 public function actionV($id){
158
159 echo $id;
#5
unknown(0): ProductsController->actionViewproduct("29")
#6
+
C:wampwwwframeworkwebactionsCAction.php(108): ReflectionMethod->invokeArgs(ProductsController, array("29"))
#7
+
C:wampwwwframeworkwebactionsCInlineAction.php(47): CAction->runWithParamsInternal(ProductsController, ReflectionMethod, array("r" => "products/Viewproduct", "id" => "29"))
#8
+
C:wampwwwframeworkwebCController.php(308): CInlineAction->runWithParams(array("r" => "products/Viewproduct", "id" => "29"))
#9
+
C:wampwwwframeworkwebCController.php(286): CController->runAction(CInlineAction)
#10
+
C:wampwwwframeworkwebCController.php(265): CController->runActionWithFilters(CInlineAction, array())
#11
+
C:wampwwwframeworkwebCWebApplication.php(282): CController->run("Viewproduct")
#12
+
C:wampwwwframeworkwebCWebApplication.php(141): CWebApplication->runController("products/Viewproduct")
#13
+
C:wampwwwframeworkbaseCApplication.php(180): CWebApplication->processRequest()
#14
–
C:wampwwwkalayerozindex.php(13): CApplication->run()
08 defined('YII_DEBUG') or define('YII_DEBUG',true);
09 // specify how many levels of call stack should be shown in each log message
10 defined('YII_TRACE_LEVEL') or define('YII_TRACE_LEVEL',3);
11
12 require_once($yii);
13 Yii::createWebApplication($config)->run();
2015-06-21 20:13:24 Apache/2.4.9 (Win32) PHP/5.5.12 Yii Framework/1.1.14
مدل نمی شناسه وچی کار باید انجام بدم.
خوب شما برای صفحه دوم دارین id رو میفرستین. توی کد اکشن add مدل رو که براساس id پیدا میکنید، برای ویو میفرستین؟
درسته .من میخوام ک id محصول رو به ویو بفرستم .با php اینو نوشتم کار می کرد اما محصول اد نمیشد با کد اکشن.
<?PHP
$id= $_GET['id'];
$show=products::model()->findAllBySql('select * from products where id='.$id);
for($i=0;$i<count($show);$i++)
{
echo "<div id='onvan-sowone'><h2><i>".$show[$i]->name."</i></h2></div>";
$show2=img::model()->findAllBySql('select * from img where product_id='.$id);
for($t=0;$t<count($show2);$t++)
{
echo "<center>
<img style='width:190px; height:160px; aling:center;' src='".Yii::app()->baseUrl.$show2[$t]->image."' /> </center>";
}
?>
<div id='pic-sowone'>
<a class="jDesin_zoom" href="<?php echo Yii::app()->baseUrl.$show[$i]->pic; ?>">
<img style="width:190px; height:160px; aling:center;" src="<?php echo Yii::app()->baseUrl.$show[$i]->pic; ?>" /></a>
<a href='"<?php echo Yii::app()->createUrl('products/add', array('id'=>$show[$i]->id)); ?>"' ><input type='submit' value='خرید'/></a>
<a href='".Yii::app()->baseUrl."/index.php/kharid/wishtlist/".$show[$i]->id."' ><input type='submit' value='سبد علاقه مندی'/></a>
<div class="product col-md-3 service-image-left">
> </div>
<div class="product col-md-3 service-image-left">
</div>
</div><br><br>
<?php } ?>
اگر لینکی یا مطلبی در این مورد دارین لطف می کنید بدین بخونم.
البته این توضیح رو بدم ک
من یه جدول دیگه دارم که تصاویر محصول درش هست و تو ویو باید از دو تا جدول داده بگیرم ک برای یه محصول باشه در این مورد هم راهنمایم کنید ممنون میشم.
من چطوری id محصول رو بفرستم؟
ممنونم ک را هنمایی ام کردین.
به این شکل:
$this->render('view', array('id' => $model->id));
تو اکشن Viewproduct بنویسم استاد؟
بله. البته میتونید به این شکل هم کار کنید تا مجبور نباشین model$ رو توی خود ویو بسازین:
$model = Products::model()->findByPk($id);
$this->render('view', array('model' => $model));
ضمناً بجای دستوراتی که اینطوری نوشتین:
$show=products::model()->findAllBySql('select * from products where id='.$id);
$show2=img::model()->findAllBySql('select * from img where product_id='.$id);
این کدها رو بنویسید:
$show = products::model()->findByPk($id);
$show = img::model()->findAllByAttributes(array('product_id' => $id));
درست شد استاد ممنونم خیلی لطف کردین.