【问题标题】:Laravel 5.2: Route without running Laravel Serve not workingLaravel 5.2:没有运行 Laravel Serve 的路由不起作用
【发布时间】:2017-07-20 16:16:27
【问题描述】:

我有一个 Laravel 5.2 练习应用程序,它与 Laravel Serve 一起运行,像这样运行

完美运行,表单刀片跟随

@extends('layouts.app')

@section('form')
<div class="col-md-4">
@if(count($errors)>0)
<div class="alert alert-danger">
    @foreach($errors->all() as $error)
        {{ $error }}
    @endforeach
</div>
@endif
<form action="/" method="post">
    <div class="form-group">
        <label>I want to</label>
        <select class="form-control" name="action">
            <option value="greet">Greet</option>
            <option value="hug">Hug</option>
            <option value="kiss">Kiss</option>
        </select>
    </div>
    <div class="form-group">
        <label>this person</label>
        <input type="text" class="form-control" name="name" >
        <input type="hidden" name="_token" value="{{ csrf_token() }}">
    </div>
    <div class="form-group">
        <button type="submit" class="btn btn-success "> Do it! </button>
    </div>
  </form>
 </div>
 @endsection

在路由中有以下 POST 路由条目

Route::post('/', 'adminController@post');

问题

当我使用 Wamp 服务器而不是 Laravel 服务器运行相同的应用程序时

我按下提交按钮,它会将我带到本地主机

是否可以编写一个可以在两种情况下执行的路由条目,无论 Laravel Server 运行还是不运行。 ?

这些是我的路线

Route::get('/', [
  'uses' => 'adminController@index',
  'as'  => 'home'
]);
Route::get('/hug/{name?}', [
  'uses' => 'adminController@hug',
  'as'  => 'hug'
]);
Route::get('/kiss/{name?}', [
  'uses' => 'adminController@kiss',
  'as'  => 'kiss'
]);
Route::get('/form', [
  'uses' => 'adminController@form',
  'as'  => 'form'
]);

Route::post('/', 'adminController@post')->name('index'); 


Route::auth();

Route::get('/home', 'adminController@index');
Route::get('/logout',function(){
Auth::logout();
 return Redirect::to('/home');
});

【问题讨论】:

  • Route::post('/', 'adminController@post')->name('index');并添加表单 action route('index')
  • 我应该在表单中写什么?
  • 添加 {{ route('index') }} 以形成动作
  • @sunilwananje 现在它把我带到localhost/blog_new/public 意味着再次在根上。我已经编辑了帖子,请查看我的路线文件
  • 您要重定向到哪个页面?

标签: php laravel laravel-5.2


【解决方案1】:

发生这种情况是因为您将 / 硬编码在

<form action="/" method="post">

我强烈建议您在表单中使用Laravel Collective

您可以打开一个提供路线的表单,而不是像这样的绝对 URL。 阅读文档。

echo Form::open(['route' => 'route.name'])

Laravel Collective 会像这样解决你的所有问题。它具有模型绑定和 CSRF 保护。易于使用。

希望对您有所帮助。

【讨论】:

    【解决方案2】:

    如果您不想使用表单集合,请在表单操作中,将 action="/" 替换为您的路由 url:

    <form action="your_post_url" method="post">
        <!-- protect your application from cross-site request forgery (CSRF) attacks. -->
        {{ csrf_field() }}
        <!-- your form here -->
    </form
    

    要查找路由 url,您可以在控制台中使用命令 php artisan route:list

    【讨论】:

      【解决方案3】:

      好的,我已经通过以下操作修复了它。

      路线入口

      Route::post('/post', 'adminController@post')->name('post'); 
      

      表单打开

      <form action="{{ route('post') }}" method="post">
      

      以前 Route 指向 /。我仍然不知道为什么在我命名发布路线时提到 /post 修复了它,但它现在可以工作了

      【讨论】:

      • 现在它适用于两者,Laravel Server 运行 url 和没有
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-31
      • 2016-07-25
      • 1970-01-01
      • 2016-11-05
      • 2015-01-26
      • 2015-03-13
      相关资源
      最近更新 更多