如何获取Laravel查询的$ _GET或$ _POST值

时间:2017-09-21 17:45:57

标签: mysql database laravel eloquent

好的,我尝试搜索解决方案,从表单中获取值并插入Laravel查询生成器,但我还没有找到答案。

所以,如果我正在建立一个查询

->where ('company.city', '=', $form_value_for_city)

如何在POST或GET请求中获取表单传递的$ form_value_for_city的值。

相当于获得价值的东西,比如

$form_value_for_city = $_GET["city"]

我了解Laravel的安全标准,但是从表单提交中传递查询中的值的确切方法是什么。

2 个答案:

答案 0 :(得分:2)

您可以使用请求对象来获取帖子并获取值:

request()->get('variable_name');

如果将具有Illuminate \ Http \ Request类型的参数传递给控制器​​方法,则可以使用该参数:

use Illuminate\Http\Request    

public function store(Request $request)
{
    $request->all(); //returns all values
    $request->has('variable_name'); // check for existance
    $request->get('variable_name'); // get the value
}

可以将表单中的数据直接传递给Larave查询构建器方法。因为Laravel的Eloquent ORM使用PDO参数绑定来避免SQL注入。所以你可以安全地做->where ('company.city', '=', $request->city)

答案 1 :(得分:0)

如果您将值作为POST方法发布

<form  method="POST" action="delete-blog">
<input type="text" name="form_value_for_city" />
</form>

在控制器中你可以像这样访问

 public function deleteBlogPost(Request $request) {
        $request->form_value_for_city
        }

还要确保已在控制器中导入use Illuminate\Http\Request;

在路线中,您必须为此

添加发布路线
Route::post('delete-blog','BlogController@deleteBlogPost');

获取请求 在路线:

Route::get('edit-tag/{id}','BlogController@editTag');
控制器中的

public function editTag($id) {

        $response = Tag::retrieveTagById($id);


        return view('tag', ['data' => $response]);
    }

根据你的问题,如果它的帖子

->where ('company.city', '=', $request->form_value_for_city)

如果它的Get然后你有一些这样的想法

public function test($form_value_for_city){
->where ('company.city', '=', $form_value_for_city)
}