Laravel验证输入数组

时间:2014-01-19 14:12:54

标签: arrays validation laravel

我是这个laravel的新手。我有来自其他开发人员的代码。现在,客户希望更新订单表格产品,将产品列入复选框。

此处产品刀片的外观如下:

<input type="checkbox" name="product[]" value="{{ $pp->name }}"> {{ $pp->name }}<br />

以下是控制器:结果打印出“ARRAY”。任何人都可以帮我如何从复选框中获取产品数组值。

function post_sendorder(){

$rules = array(
    'name' => 'required|min:2',
    'email' => 'required|email',
    'phone' => 'required|alpha_dash',
    'message' => 'required|min:5',
'product' => 'required'
);

$v = Validator::make(Input::all(), $rules);
$v = $v->fails() ? $v : true;

if($v !== true) return Redirect::to_route('prods')->with_errors($v->errors)->with_input()->with('show_order',true);

Message::send(function($message){
        $message->to('mail@gmail.com');         
        $message->from(Input::get('email'), Input::get('name'));
        $message->subject('Keratin Product Order Form');
        $message->body(
            '<!doctype html>
            <html>
            <body>'.
            'Name: '.Input::get('name').'<br />'.
            'Email: '.Input::get('email').'<br />'.
            'Phone: '.Input::get('phone').'<br />'.     
            'Product Ordered:' .Input::get('product'). '<br />'.
            'Message: '.Input::get('message').'<br />'.
            '</body>
</html>'
        );

        $message->html(true);

    });

    if(Message::was_sent()){
        return Redirect::to_route('prods')->with('s-message','Your Order     Form has been successfully sent!')->with('show_order',true);
    }else{
        return Redirect::to_route('prods')->with('e-message','Sending Failed!')->with('show_order',true);
    }   

}

1 个答案:

答案 0 :(得分:1)

Input::get('product')是产品名称数组(name="product[]" value="{{ $pp->name }}")。

而不是'Product Ordered:' .Input::get('product')你需要

'Products Ordered:' . implode(', ', Input::get('product'))