【问题标题】:How to pass variables from view to controller without using forms in Laravel?如何在不使用 Laravel 中的表单的情况下将变量从视图传递到控制器?
【发布时间】:2016-02-19 11:13:53
【问题描述】:

我正在使用 RESTful 控制器并传递变量(使用表单)在这里工作得很好。

现在出于某种原因,我需要使用简单的链接,使用 action() 创建和 @create 操作的专用路由。

我的观点创建了几个具有不同参数的相似链接:

<a href="{!! action('\App\Http\Controllers\Admin\Franch\Category\SubCategoryController@create', array('mainCategoryName' => $mainCategoryName)) !!}">

它有效,因为我可以在 URL 中看到它:

/create?mainCategoryName=some_sample_name

但是路由没有将变量传递给@create 操作或者控制器由于某种原因没有接收到它:

Route::get('admin/franch/sub_categories/create', ['uses' => 'Admin\Franch\Category\SubCategoryController@create');

我想知道如何使用 GET 和 POST 方法将变量从视图传递到特定控制器?

这是我的@create 控制器:

public function create($mainCategoryName = false)
{
        dd($mainCategoryName);
....

总是给false

【问题讨论】:

  • 参数作为查询字符串传递,所以如果你想在创建函数中访问它,你可以做 public function create(Request $request){ dd($request->get('mainCategoryName' ));
  • $mainCategoryName 应该是能够转换为 URL 的字符串

标签: laravel view controller


【解决方案1】:

您可以在链接上创建一个函数,并在该函数中创建用户 Ajax

$.ajax({
  type: "POST",//Or Get
  url: url,
  data: {"var_name":variable},
  success: success,
  dataType: dataType
});

现在您可以将数据中的变量发送给您。然后您可以通过以下方式获取控制器中变量的值:

Input::get('var_name');

【讨论】:

    【解决方案2】:

    如果您在控制器中进行所有“计算”并像这样将结果值传递给视图会更好

    class SomeController() extends Controller
    {
        public function getView():View
        {
            $mainCategoryName = "fix";
            $formUrl = action('\App\Http\Controllers\Admin\Franch\Category\SubCategoryController@create', array('mainCategoryName' => $mainCategoryName));
    
            return view('view.show', compact('formUrl'));
        }
    ...
    

    你的错误在于在视图中保留有意义的数据,而视图应该只包含处理过的值:

    <a href="{!! $formUrl !!}">
    

    如果你真的想“发疯”,你可以创建一个使用刀片视图和控制器数据生成 HTML 的类,然后你可以在控制器中执行这个类,让你的“部分”准备好以 HTML 的形式合并到视图中。但不是反过来。让计算远离您的视野。

    【讨论】:

      猜你喜欢
      • 2020-11-03
      • 1970-01-01
      • 2021-12-08
      • 2014-12-08
      • 1970-01-01
      • 2018-02-27
      • 1970-01-01
      • 1970-01-01
      • 2022-11-18
      相关资源
      最近更新 更多