【问题标题】:How to fetch the $_GET or $_POST value for a Laravel Query如何获取 Laravel 查询的 $_GET 或 $_POST 值
【发布时间】:2018-03-03 04:13:17
【问题描述】:

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

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

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

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

类似于获得价值的东西

$form_value_for_city = $_GET["city"]

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

【问题讨论】:

  • 你有控制器吗?你设置好路线了吗?
  • 是的,我有一个调用 Illuminate\Http\Request 的控制器,所以使用请求对象对我有用

标签: mysql database laravel eloquent


【解决方案1】:

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

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)

【讨论】:

  • 完美,这对我有用。一个问题是,如果我们调用请求对象并获取变量名,为什么要使用 store 函数。
  • 这是一个例子。您可以为函数使用任何名称。
  • 我还有一个问题,在 Laravel 中,如果我从带有连字符的列名中获取值。 {{$company->start-time}} 我怎么称呼它?因为它目前给了我一个错误。
  • 在列名中使用连字符不是一个好习惯。尝试改用下划线。但是您仍然可以通过 $company->getAttribute('start-time') 获取值。
【解决方案2】:

如果您将值作为 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)

如果它得到那么你有一些这样的想法

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

【讨论】:

  • 很难理解,我猜对我来说太详细了:P 我实际上只是使用了请求对象,它做了我想要的。
猜你喜欢
  • 2014-02-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多