用Eloquent ORM / laravel准备好的声明

时间:2014-11-25 16:28:08

标签: php mysql laravel laravel-4 eloquent

我是laravel的新手并将其用作输入查询:

DB::table('user_input')->insert(array(
                array('fname' => Input::get('Name'),'lname' => 'no','email' => Input::get('E-Mail'),'date_from' => $from_date,'date_to' => $to_date,'phone' => Input::get('Phone'),'message' => Input::get('Message'),'ip_address' => Request::getClientIp(), 'newsletter' => Input::get('Sign-up'))

            ));

我在标准的php中永远不会这样做,因为查询似乎没有准备好,我将用户输入直接放到上面的查询中。

在Eloquent ORM中是否有自动准备,我还没有认识到,或者我如何用Eloquent写一份准备好的声明?

1 个答案:

答案 0 :(得分:3)

Eloquent在幕后制作PDO风格的语句,以防止像sql注入这样的事情。 Eloquent模型默认情况下也可以防止质量分配。除非您特别注意应该保护的数据库列或反向(应该可填写的列),否则将抛出异常。

http://laravel.com/docs/4.2/eloquent#mass-assignment

如果你想深入挖掘,可以查看课程

/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php` 

了解laravel如何在Eloquent中构建查询。