Skel
Skel

Reputation: 1667

Multiple Laravel else

I have a if statement but i need multiple else.

here is my controller code

if (Input::get('productName') == "0" && Input::get('orderCode') == "") {
        $productCode = Input::get('productCode');

        $productName = westcoproduct::where('productCode', $productCode)->first()->productName;
        $productPrice = westcoproduct::where('productCode', $productCode)->first()->price;

        $order = new westcoorderitem;
        $order->productName = $productName;
        $order->productCode = $productCode;
        $order->price = $productPrice;
        $order->quantity = Input::get('quantity');
        $order->westcoorder_id = Input::get('westcoorder_id');
        $order->save();
    } else {
        $productName = Input::get('productName');

        $productCode = westcoproduct::where('productName', $productName)->first()->productCode;
        $productPrice = westcoproduct::where('productName', $productName)->first()->price;

        $order = new westcoorderitem;
        $order->productName = $productName;
        $order->productCode = $productCode;
        $order->price = $productPrice;
        $order->quantity = Input::get('quantity');
        $order->westcoorder_id = Input::get('westcoorder_id');
        $order->save();
    } if(Input::get('productName') == "0" && Input::get('productCode') == "0") {
        $orderCode = Input::get('orderCode');

        $productName = westcoproduct::where('orderCode', $orderCode)->first()->productName;
        $productCode = westcoproduct::where('orderCode', $orderCode)->first()->productCode;
        $productPrice = westcoproduct::where('orderCode', $orderCode)->first()->price;

        $order = new westcoorderitem;
        $order->productName = $productName;
        $order->productCode = $productCode;
        $order->price = $productPrice;
        $order->quantity = Input::get('quantity');
        $order->westcoorder_id = Input::get('westcoorder_id');
        $order->save();
    }

I have 3 input fields productName, productCode, orderCode. And this above should work if Only one of the feilds work. if the productname field is filled it works. but i cannot figure out how to get the other two to work.

So with the orderCode productName and productCode will be empty and vise versa

Upvotes: 1

Views: 76

Answers (2)

Skel
Skel

Reputation: 1667

I Fixed my code because i added "0" when it was meant to just be an empty and i changed them all to elseif check the code below

if (Input::get('productName') == "" && Input::get('orderCode') == "") {
        $productCode = Input::get('productCode');

        $productName = westcoproduct::where('productCode', $productCode)->first()->productName;
        $productPrice = westcoproduct::where('productCode', $productCode)->first()->price;

        $order = new westcoorderitem;
        $order->productName = $productName;
        $order->productCode = $productCode;
        $order->price = $productPrice;
        $order->quantity = Input::get('quantity');
        $order->westcoorder_id = Input::get('westcoorder_id');
        $order->save();
    } elseif(Input::get('productCode') == "" && Input::get('orderCode') == "") {
        $productName = Input::get('productName');

        $productCode = westcoproduct::where('productName', $productName)->first()->productCode;
        $productPrice = westcoproduct::where('productName', $productName)->first()->price;

        $order = new westcoorderitem;
        $order->productName = $productName;
        $order->productCode = $productCode;
        $order->price = $productPrice;
        $order->quantity = Input::get('quantity');
        $order->westcoorder_id = Input::get('westcoorder_id');
        $order->save();
    } elseif(Input::get('productName') == "" && Input::get('productCode') == "") {
        $orderCode = Input::get('orderCode');

        $productName = westcoproduct::where('orderCode', $orderCode)->first()->productName;
        $productCode = westcoproduct::where('orderCode', $orderCode)->first()->productCode;
        $productPrice = westcoproduct::where('orderCode', $orderCode)->first()->price;

        $order = new westcoorderitem;
        $order->productName = $productName;
        $order->productCode = $productCode;
        $order->price = $productPrice;
        $order->quantity = Input::get('quantity');
        $order->westcoorder_id = Input::get('westcoorder_id');
        $order->save();
    }

Upvotes: 0

Alexey Mezenin
Alexey Mezenin

Reputation: 163898

You probably want to use elseif.

} elseif (Input::get('productName') == "0" && Input::get('productCode') == "0") {

Or nested if...else:

if (Input::get('productName') == "0") {
    if (Input::get('orderCode') == "") {
        $productCode = Input::get('productCode');

        $productName = westcoproduct::where('productCode', $productCode)->first()->productName;
        $productPrice = westcoproduct::where('productCode', $productCode)->first()->price;
    } elseif {
        if (Input::get('productCode') == "0") {
                $orderCode = Input::get('orderCode');

                $productName = westcoproduct::where('orderCode', $orderCode)->first()->productName;
                $productCode = westcoproduct::where('orderCode', $orderCode)->first()->productCode;
                $productPrice = westcoproduct::where('orderCode', $orderCode)->first()->price;
        }
    } else {
        $productName = Input::get('productName');

        $productCode = westcoproduct::where('productName', $productName)->first()->productCode;
        $productPrice = westcoproduct::where('productName', $productName)->first()->price;
    }

    $order = new westcoorderitem;
    $order->productName = $productName;
    $order->productCode = $productCode;
    $order->price = $productPrice;
    $order->quantity = Input::get('quantity');
    $order->westcoorder_id = Input::get('westcoorder_id');
    $order->save();
}

Upvotes: 1

Related Questions