【问题标题】:Can laravel Route have no URL?laravel Route 可以没有 URL 吗?
【发布时间】:2017-06-30 12:55:58
【问题描述】:

我有更多关于 Laravel 的一般性问题。 我是新手。

我已经创建了一个表单:

{!! Form::model($tourists, ['action' => 'TouristController@store', 'id' => 'passengers_form', 'class' => 'inline' ] ) !!}

{!! Form::close()!!}

它输出:“Action App\Http\Controllers\TouristController@store 未定义。”

虽然 TouristController 和方法 store 确实存在。 我尝试了这个和那个,然后发现当我将它添加到我的 web.php 文件(以前版本中的 routes.php)时它可以工作:

"Route::post('/addtourist', 'TouristController@store');"

好的,我明白了,为了使方法起作用,我应该将它添加到“web.php”(路由)中。

但是,如果我有一个我想在没有 'url' 的情况下工作的方法怎么办?

例如,我想将信息从上面的表单(或任何其他视图)直接发送到“TouristController@store”,而不是使用“/addtourist”?

喜欢

 Route::justMakeMethodWorkWithoutAnyURL('TouristController@store');

这可能吗?

对不起,如果我的问题本身令人困惑。我想更深入地了解 Laravel。

【问题讨论】:

    标签: laravel laravel-routing


    【解决方案1】:

    这是一个老问题,但我相信这就是您要寻找的:

    action('TouristController@store');
    

    来自documentation

    action 函数为给定的控制器操作生成一个 URL。

    【讨论】:

    • 谢谢,罗伯特!我不再使用 Laravel,所以我忘记了这个问题。我已经重读了它,我想我的问题是你是否需要一个 URL 来进行一些操作。根据上面的回答和我的经验,我可以说你需要它:)
    • @SergejFomin 没错,你总是需要一个 URL。只有在这种情况下,您才不需要指定实际的 URL。
    【解决方案2】:

    我觉得你可以试试这个

    Route::post('/addtourist', 'TouristController@store')->route('tourist');
    
    {!! Form::open(['route' => 'tourist', 'id' => 'passengers_form', 'role' => 'form', 'method' => 'post','class'=>'inline']) !!}
    

    希望这对你有用!

    【讨论】:

    • 谢谢)但想知道在声明路由时 URL 是否是必需参数?因为我认为在某些情况下您可能希望对任何 URL 使用方法。 (例如 about 方法仅用于向数据库添加新用户)。我已经为这种方法“保留”“/addtourist”,但在某些情况下,我会将此 url 用于其他目的而忘记它已经被保留。对不起,如果这听起来像废话:)
    • 您可以使用不同的方法使用相同的 URL。例如,Route::post('/addtourist', 'abcController@abc')Route::get('/addtourist', 'abcController@bcd')。但是一旦这两种方法都使用了,那么你就不能再使用Route::post('/addtourist', 'xyzController@abc')Route::get('/addtourist', 'xyzController@abc')在你的情况下,你可以使用Route::post('/addtourist', 'TouristController@store')。现在你不能再使用Route::post('/addtourist', 'TravelsController@store')。希望你能理解!! :)
    【解决方案3】:

    我认为您想要的只是编写一个类,然后将其包含在您的 php 文件中以调用它的方法。

    根据定义,路由用于将 url 映射到某些逻辑处理程序。在您的表单示例中,您必须将数据发布到 url,因为这就是 html 表单的作用。

    【讨论】:

      猜你喜欢
      • 2021-11-28
      • 1970-01-01
      • 1970-01-01
      • 2016-10-23
      • 2013-06-09
      • 2016-12-15
      • 1970-01-01
      • 2014-12-17
      • 2015-05-19
      相关资源
      最近更新 更多