سلام
دوستان من چندین بار هستش در این باره داره درخواست هایی رو اینجا ایجاد می کنم اما واقعا به جواب نرسیدم.
ممنون میشم کسی فکری راهی داره بهم کمک کنه.
من یه سیستمی نوشتم الان مشکلم این هستش.مثلا یه برگه رو باز می کنه کاربر من تو اون برگه بع از باز شدن کاربر می تونه کارهای متفاوت انجام بده مثال : روی گزینه ایجاد معامله کلیک کنه یا معامله ایجا شده رو لغو کنه و ... خوب.وقتی کاربر من معامله ایجاد می کنه یا لغو می کنه با یه ریدایرکت بر می گرده دوباره به همین برگه : مشکل از اینجا شروع میشه.
من پیام رو به صورت سیشن پاس می دم به صفحه برگشتی این پیام نمایش داده نمیشه اول وقتی کاربر یک کار دیگه تو اون برگه انجام میده و وباره ریدایرکت میشه حالا پیام میاد بالا نمایش داده میشه.البته نه پیام قبلی ها پیام جدید . یعنی اولین درخواست هر چی باشه ریدایرکت بشه به برگه هیچ پیامی نمیاد از درخواست های بعدی پیام ها درست نمایش داه میشن. و کاربر از برگه خارج بشه بره بیرون دوباره همین مشکل هست بای یکبار هر کاری کنه پیام رو نبینه از دفعه بعدش پیام ها رو می بینه.
@websaz
@mohaligateway
@samanzdev
@Rp76
@rezajahangir
@juza66
یک کد با چندین شرط که هر کدوم از شرط ها هم اگه اجرا بشن ریدایرکت میشه با پیام خاص اجرا نشه بازم ریدایرکت میشه با پیام خطای خاص
public function buy_make(Request $request,$coin)
{
$user_id = Auth::user()->id;
$qfee = \DB::table('crypto_setting')->where('name',$coin)->first();
$coin_price = \DB::table('crypto_price')->where('name',$coin)->first();
$doge_price = \DB::table('crypto_price')->where('name','doge')->first();
$price = $request->get('buy_price');
$coin_count = $request->get('buy_count');
$user_doge_wallet = \DB::table('wallet')->where('wallet_coin','doge')->where('user_id',$user_id)->first();
$full_usd_price = $price * $coin_count ;
$fee = $full_usd_price * $qfee->sell_percent / 100 ; // fee
$full_usd = $full_usd_price + $fee ;
$coin_send = $full_usd / $doge_price->now_price;
$coin_name = $coin;
$mode = 'buy';
$trade_section = 'doge';
$coin_ex = $full_usd_price + $fee / $coin_price->now_price;
if($coin_send < $user_doge_wallet->balance)
{
//mojodi dare baraye sabte in darkhast
if($full_usd_price > 5)
{
//start insert
$rand1 = rand(111111,9999999999);
$rand2 = time();
$random = $rand1.$rand2 ;
$id_sec = md5($random) ;
//start insert
//freez token
$Q_Freez_Ago = \DB::table('coin_wallet')->where('wallet','doge')->where('user_id',$user_id)->first();
$Q_Freez = \DB::table('coin_wallet')->where('wallet','doge')->where('user_id',$user_id)->update([
'balance' => $Q_Freez_Ago->balance - $coin_send
]);
$Q_Insert = \DB::table('spot_limit')->insert([
'id_sec' => $id_sec.$user_id,
'user_id' => $user_id ,
'price' => $price,
'coin_count' => $coin_count,
'coin_name' => $coin_name,
'coin_send' => $coin_send,
'fee' => $fee,
'mode' => $mode,
'trade_section' => $trade_section
]);
if($Q_Insert)
{
//complete
return redirect()->back()->with(['buy request ok'=>'buy request ok']);
}else{
//error
return redirect()->back()->with('buy request error', 'buy request error');
}
}else{
//min buy 5 dollar
return redirect()->back()->with('min buy 5 dollar', 'min buy 5 dollar');
}
}else{
//dont have money
return redirect()->back()->with('dont have money', 'dont have money');
}
حس میکنم راحت تر بودی یک متغیر تعریف میکردی بعد فقط ۱ return میذاشتی
$result="";
return redirect()->back()->with('error', $result);
توی view هم به این شکل
@if(session()->has("error))
<div class='alert alert-primary'>
{{session()->get("error")}}
</div>
@endif
تو ویوو هم دقیقا مشابه شما رفتار کردم .
البته در مورد تعریف متغییر هم کاملا درست هستش اما از بس من گیر های الکی دیدم تو کدنویسی که دیگه ترجیح می دم راه سخت برم اما مطمئن باشم متغییر پر هستش . همین الان مشکل دارم رو اینکه بار اول خطا پاس داده نمیشه اما بار دوم پاس داده میشه.
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟