خطا‌‌ها‌ی زیر رخ داد:
Warning [2] preg_replace_callback(): Requires argument 2, 'mwsshcode_check("$1","$2")', to be a valid callback - Line: 197 - File: inc/plugins/mwsshcode.php PHP 7.3.4 (Linux)
File Line Function
[PHP]   errorHandler->error
/inc/plugins/mwsshcode.php 197 preg_replace_callback
/inc/class_plugins.php 139 mwsshcode_run
/inc/class_parser.php 187 pluginSystem->run_hooks
/inc/functions_post.php 721 postParser->parse_message
/showthread.php 1063 build_postbit
Warning [2] preg_replace_callback(): Requires argument 2, 'mwsshcode_check("$1","$2")', to be a valid callback - Line: 197 - File: inc/plugins/mwsshcode.php PHP 7.3.4 (Linux)
File Line Function
[PHP]   errorHandler->error
/inc/plugins/mwsshcode.php 197 preg_replace_callback
/inc/class_plugins.php 139 mwsshcode_run
/inc/class_parser.php 187 pluginSystem->run_hooks
/inc/functions_post.php 721 postParser->parse_message
/showthread.php 1063 build_postbit
Warning [2] preg_replace_callback(): Requires argument 2, 'mwsshcode_check("$1","$2")', to be a valid callback - Line: 197 - File: inc/plugins/mwsshcode.php PHP 7.3.4 (Linux)
File Line Function
[PHP]   errorHandler->error
/inc/plugins/mwsshcode.php 197 preg_replace_callback
/inc/class_plugins.php 139 mwsshcode_run
/inc/class_parser.php 187 pluginSystem->run_hooks
/inc/functions_post.php 752 postParser->parse_message
/showthread.php 1063 build_postbit
Warning [2] preg_replace_callback(): Requires argument 2, 'mwsshcode_check("$1","$2")', to be a valid callback - Line: 197 - File: inc/plugins/mwsshcode.php PHP 7.3.4 (Linux)
File Line Function
[PHP]   errorHandler->error
/inc/plugins/mwsshcode.php 197 preg_replace_callback
/inc/class_plugins.php 139 mwsshcode_run
/inc/class_parser.php 187 pluginSystem->run_hooks
/inc/functions_post.php 721 postParser->parse_message
/showthread.php 1063 build_postbit
Warning [2] preg_replace_callback(): Requires argument 2, 'mwsshcode_check("$1","$2")', to be a valid callback - Line: 197 - File: inc/plugins/mwsshcode.php PHP 7.3.4 (Linux)
File Line Function
[PHP]   errorHandler->error
/inc/plugins/mwsshcode.php 197 preg_replace_callback
/inc/class_plugins.php 139 mwsshcode_run
/inc/class_parser.php 187 pluginSystem->run_hooks
/inc/functions_post.php 721 postParser->parse_message
/showthread.php 1063 build_postbit
Warning [2] preg_replace_callback(): Requires argument 2, 'mwsshcode_check("$1","$2")', to be a valid callback - Line: 197 - File: inc/plugins/mwsshcode.php PHP 7.3.4 (Linux)
File Line Function
[PHP]   errorHandler->error
/inc/plugins/mwsshcode.php 197 preg_replace_callback
/inc/class_plugins.php 139 mwsshcode_run
/inc/class_parser.php 187 pluginSystem->run_hooks
/inc/functions_post.php 721 postParser->parse_message
/showthread.php 1063 build_postbit




رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
سبد خرید در yii2
#1
با سلام 
من برای ساخت سبد خرید هیچ مشکلی ندارم به صورت عادی یک سشن ایجاد می کنم و کد محصول را در آن به عنوان کلید تعیین و می کنم و مقدار کلید را تعداد خرید تعیین می کنم 
1- حالا مشکل من اینجاست که کالای من دارای رنگ و سایز هست یعنی کاربر هنگام خرید باید رنگ و سایز کالا را هم انتخاب کند این را چطور به این سشن اضافه کنم ؟
2- چطور رنگها را در بخش مدیریت و تعریف کالا با چک باکس انتخاب و در فیلد رنگ یا سایز جدول محصولات اضافه کنم و در نمایش کالا به صورت رادیو نشون بدم؟
پاسخ
تشکر شده توسط:
#2
1- توی هر عنصر سشن شما میتونین هر چیزی ذخیره کنین. مثلاً یک آرایه که شامل تعداد و رنگ و سایز هست. مثال:
[shcode=php]$cart = Yii::$app->session->get('cart');
$cart[] = ['id' => 5, 'qty' => 1, 'color' => 'blue', 'size' => 'large'];
Yii::$app->session->set('cart', $cart);[/shcode]

2- یک جدول باید برای رنگ‌ها و سایزها داشته باشین و هر رنگی که در سیستم تعریف میکنین، توی این جدول بگذارین. بعد یک جدول واسط تعریف کنید برای ارتباط بین رنگ‌ها و محصولات. اگه یه محصول 5 رنگ داشته باشه، باید 5 رکورد در این جدول ثبت بشه که در همه‌ی این رکوردها، id محصول ثابت و id رنگ متغیره. موقع نمایش محصول به مشتری هم تمام رنگ‌هایی که توی این جدول واسط هستن و با id محصول ارتباط دارن رو بصورت radio نمایش بدین. باید از ارتباط «چند به چند» استفاده کنید.
پاسخ
تشکر شده توسط:
#3
انجام دادم دست درد نکنه
ولی الان مشکلی که دارم من به شکل زیر اینها را تعریف کردم و صفحه خطا میده
[shcode=php]<h5>رنگ بندی :
<?php foreach(ProdColors::find()->where(['productID' => $product->id])->all() as $color) : ?>
<input type="radio" name="colors" value="<?= $color->colorID ?>" /> <?= $color->color->name ?>
<?php endforeach; ?>
</h5>[/shcode]

خب حالا من می خوام به سبد خرید اضافه کنم خطا میده
[shcode=php]<?= Html::a('<i class="fa fa-cart-plus fa-lg"></i> افزودن به سبد خرید', ['/cart/add', 'id' => $product->id, 'color' => $_GET['colors'], 'size' => $_GET['sizes']], ['class' => 'btn btn-success pull-left']) ?>[/shcode]
پاسخ
تشکر شده توسط:
#4
کلاس اضافه و حذف کردن به شکل زیر بود حالا چطور با این شرایط تغییرش بدم

[shcode=php]<?php
namespace app\controllers;

use Yii;
use app\components\MyController;
use yii\web\HttpException;
use yii\helpers\Url;
use app\models\Products;
use app\models\Orders;
use app\models\Orderdata;

Class CartController extends MyController
{
public function actionAdd($id,$color,$size)
{
$this->loadModel($id);
$cart = Yii::$app->session->get('cart');
if(!isset($cart['id']) == $id){
$cart[] = ['id' => $id, 'qty' => 1, 'color' => $color, 'size' => $size];
} else {
$cart[] = ['id' => $id, 'qty' => 2, 'color' => $color, 'size' => $size];
}
Yii::$app->session->set('cart', $cart);
$this->goBack();
}
public function actionPlus($id)
{
$this->loadModel($id);
$cart = Yii::$app->session->get('cart');
$cart['id']['qty']++;

Yii::$app->session->set('cart', $cart);
$this->goBack();
}

public function actionSub($id)
{
$this->loadModel($id);
$cart = Yii::$app->session->get('cart');
if(isset($cart[$id])){
$cart[$id]--;
if($cart[$id] <= 0){
unset($cart[$id]);
}
Yii::$app->session->set('cart', $cart);
}
$this->goBack();
}

public function actionRemove($id)
{
$this->loadModel($id);
$cart = Yii::$app->session->get('cart');

if(isset($cart['id'])){
unset($cart[$id]);
Yii::$app->session->set('cart', $cart);
}
$this->goBack();
}

public function actionClear()
{
Yii::$app->session->set('cart', []);
$this->goHome();
}


public function actionSave()
{
$carts = Yii::$app->session->get('cart');
if(empty($carts)){
$this->goHome();
}
$total = 0;
foreach($carts as $cart){
if($model = $this->loadModel($cart['id'])){
$total += $model->price * $cart['qty'];
}
}
$total += 70000;

$order = new Orders();
$order->userID = Yii::$app->user->id;
$order->totals = $total;
$order->ts = time();
$order->confirm = 0;
if($order->save()){
foreach ($carts as $cart){
if($model = $this->loadModel($cart['id'])){
$orderData = new Orderdata();
$orderData->orderID = $order->id;
$orderData->productID = $id;
$orderData->quntity = $cart['qty'];
$orderData->colorID = $cart['color'];
$orderData->sizeID = $cart['size'];
$orderData->save();
}
}
}

Yii::$app->session->set('cart', []);
return $this->redirect(['/members/index']);
}


public function actionView()
{
$cart = Yii::$app->session->get('cart');
if(empty($cart)){
$this->goHome();
}
Yii::$app->user->returnUrl = Url::to();
return $this->render('view', compact('cart'));
}


private function loadModel($id)
{
$model = Products::findOne(['id' => $id, 'confirm' => 1]);
if(!$model || !$model->category->confirm)
{
throw new HttpException(404, 'محصول مورد نظر یافت نشد');
}
return $model;
}
}[/shcode]
پاسخ
تشکر شده توسط:
#5
دوستان کسی نیست راهنمایی کنه؟
پاسخ
تشکر شده توسط:




کاربران در حال بازدید این موضوع: 1 مهمان