【问题标题】:How laravel set path for ajax and formslaravel 如何为 ajax 和表单设置路径
【发布时间】:2016-04-02 19:08:48
【问题描述】:

我有一个简单的问题: laravel 如何为 ajax 或表单操作设置正确的路径?

我的 laravel 安装在

localhost/laravel-test/public

好的,假设我打开了 url:localhost/laravel-test/public/hello

<form method="post" action="some/very/long/path">
        <input type="submit" value="just-test" />
</form>

现在我点击了 just-test 按钮,它总是知道应该从哪里开始路由 - 总是从 public/[route here] 开始。

我试图做自己的路由系统,但我遇到了问题,因为它要去地址:

localhost/my-framework/public/hello/some/very/long/path

它总是在公开我的实际网址之后,然后在表单操作之后..

所以我的问题是 laravel 如何知道它应该得到的

localhost/laravel-test/public/some/very/long/path

对于 ex 的 jquery ajax 请求同样适用:

$.ajax({
    url: "test.html",
    context: document.body
})

Laravel 控制台输出:

localhost/laravel-test/public/test.html

我的自定义框架控制台输出

localhost/my-framework/public/actualpath/test.html

【问题讨论】:

    标签: ajax forms laravel path


    【解决方案1】:

    对于表单操作,您可以使用 urlroute 帮助器。像这样:

    {{ url('very/long/path') }}
    

    对于你的前端部分。

    $('#form').live('submit', function(event) {
        $form = $(this);
    
        $.ajax({
            url: $form.attr('action')
        });
    });
    

    【讨论】:

      【解决方案2】:

      我想这就是你要找的。​​p>

      routes.php

      Route::post('some-very-long-uri', ['as' => your-name', 'uses' => 'YourController@method']);
      

      然后你可以做类似的事情

      <form method="post" action="{{ route('your-name') }}">
          <input type="submit" value="just-test" />
      </form>
      

      对于ajax

      $.ajax({
          url: "{{ route('your-name') }}"
      });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-04-28
        • 1970-01-01
        • 2019-05-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多