محمود خسروی
6 سال پیش توسط محمود خسروی مطرح شد
1 پاسخ

implode با لاراول کار نمیکند

سلام چطور میشه با implode چک کرد که آیا این فیلد (computer) با همین user id در جدول وجود دارد؟

order.blade.php

<form action="{{ route('store') }}" method="post">
    <input type="checkbox" name="computer[]" value="1" id="hp">
    <label for="hp">HP</label>
    <input type="checkbox" name="computer[]" value="2" id="dell">
    <label for="dell">DELL</label>
    <input type="checkbox" name="computer[]" value="3" id="asus">
    <label for="asus">ASUS</label>
    <input type="checkbox" name="computer[]" value="4" id="acer">
    <label for="acer">ACER</label>
    <input type="checkbox" name="computer[]" value="5" id="sony">
    <label for="sony">Sony</label>
    <input type="checkbox" name="computer[]" value="6" id="fujitsu">
    <label for="fujitsu">Fujitsu</label>
    <input type="checkbox" name="computer[]" value="other_barnds" id="other_barnds">
    <label for="other_barnds">Other</label>
           <input type="submit" class="btn btn-primary" value="Save">
</form>

OrderController.php

public function store(Request $request)
{
    $this->validate(request(), [
        'computer' => 'required'
    ]);

    $order = Order::where('user_id',auth()->id())
        ->where('computer', request('computer'))
        ->exists(); 

    $order = new Order($request->all());
    $order->user_id = auth()->user()->id;
    $order->description = $request->description;
    $computer = implode(",", $request->computer);
    $order->computer = $computer;
    $order->save();

    if ($order) {
        alert()->error('Warning', 'You ordered already');
        return redirect()->back();
    }
}

ثبت پرسش جدید
mahdi mehrabi
@mahdimehrabi17 6 سال پیش آپدیت شد
0

سلام
بهتر بود که توی model تون computer رو تبدیل به آرایه میکردید برای ذخیره شدن که بتونید آرایه هم ذخیره کنید و

protected $casts=[
'computer'=>'array'
]

و اینکه Order و User رو از طریق مدل به هم دیگه وصل میکردید اما با این حال با روشی که شما رفتی بخوایم بریم باید

Order::where('user_id',auth()->id)->where('computer','like','%'.$computer.'%')->get();

کد بالا orders هایی که با مقدار فعلی computer ذخیره شدند و user اشون هم user فعلیه رو برمیگرداند


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام