Php Laravel-仅回家路线工作

Php Laravel-仅回家路线工作,php,laravel,.htaccess,laravel-artisan,Php,Laravel,.htaccess,Laravel Artisan,问题 所有路由都正确键入并由php artisan route检查:在此处列出输出 +--------+----------+------+--------+------------------------------------------- -------+------------+ |←[32m Domain ←[39m|←[32m Method ←[39m|←[32m URI ←[39m|←[32m Name ←[39m|←[3 2m Action

问题 所有路由都正确键入并由php artisan route检查:在此处列出输出

+--------+----------+------+--------+-------------------------------------------
-------+------------+
|←[32m Domain ←[39m|←[32m Method   ←[39m|←[32m URI  ←[39m|←[32m Name   ←[39m|←[3
2m Action                                           ←[39m|←[32m Middleware ←[39m
|
+--------+----------+------+--------+-------------------------------------------
-------+------------+
|        | GET|HEAD | /    | home   | App\Http\Controllers\QuoteController@getIn
dex    | web        |
|        | POST     | new  | create | App\Http\Controllers\QuoteController@addNe
wQuote | web        |
|        | GET|HEAD | test | test   | App\Http\Controllers\QuoteController@getTe
st     | web        |
+--------+----------+------+--------+-------------------------------------------
-------+------------+
只有根路由在工作,其他什么都没有

我的尝试:

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>

    RewriteEngine On

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)/$ /$1 [L,R=301]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>
  • 创建另一个路由,我确保没有任何路由只起作用 回家路线,除回家外仍不工作
  • 试图将OverrideMode从“无”更改为“全部”,但未修复任何错误
  • 尝试手动键入
    localhost/quotes/public/index.php
    BOOM它可以工作
我的htaccess文件:

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>

    RewriteEngine On

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)/$ /$1 [L,R=301]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>

选项-多视图
重新启动发动机
#如果不是文件夹,则重定向尾部斜杠。。。
重写cond%{REQUEST_FILENAME}-D
重写规则^(.*)/$/$1[L,R=301]
#处理前控制器。。。
重写cond%{REQUEST_FILENAME}-D
重写cond%{REQUEST_FILENAME}-F
重写规则^index.php[L]
#句柄授权头
RewriteCond%{HTTP:Authorization}。
重写规则。*-[E=HTTP\U授权:%{HTTP:AUTHORIZATION}]
处理:

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>

    RewriteEngine On

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)/$ /$1 [L,R=301]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>
  • 视窗10

  • XAMP


    • 首先,像这样写表格

      {!! Form::open(array('action' => 'QuoteController@store')) !!}
                      <table>
              <tr>
                  <td><label for="author-form">Author Name:</label></td>
                  <td><input type="text" name="author-form" id="author-form" /></td>
              </tr>
              <tr>
                  <td><label for="quote-form">Quote:</label></td>
                  <td><textarea name="quote-form" id="quote-form" cols="30" rows="10"></textarea></td>
              </tr>
              <tr>
                  <td colspan='2'><button type="submit">Add Quote</button></td>
              </tr>
              <input type="hidden" name="_token" value="{{ Session::token() }}" />
          </table>
                      {!!Form::close()!!}
      
      Route::group(['middleware' => 'web'], function () {
          Route::resource('quate', 'QuoteController');
      
      });
      
      最后,QuoteControllerCreateStore方法在其中,如果您使用artisan命令创建控制器,它将自动生成所有必需的方法

      <?php
      
      namespace App\Http\Controllers;
      
      use Illuminate\Http\Request;
      use App\Http\Requests;
      
      
      class QuoteController extends Controller
      {
        public function index(){
      
              return view('welcome');
          }
          public function create(){
              return view('test');
          }
      public function store(Request $request){
             // Some Code here
          }
      }
      

      首先,像这样写表单

      {!! Form::open(array('action' => 'QuoteController@store')) !!}
                      <table>
              <tr>
                  <td><label for="author-form">Author Name:</label></td>
                  <td><input type="text" name="author-form" id="author-form" /></td>
              </tr>
              <tr>
                  <td><label for="quote-form">Quote:</label></td>
                  <td><textarea name="quote-form" id="quote-form" cols="30" rows="10"></textarea></td>
              </tr>
              <tr>
                  <td colspan='2'><button type="submit">Add Quote</button></td>
              </tr>
              <input type="hidden" name="_token" value="{{ Session::token() }}" />
          </table>
                      {!!Form::close()!!}
      
      Route::group(['middleware' => 'web'], function () {
          Route::resource('quate', 'QuoteController');
      
      });
      
      最后,QuoteControllerCreateStore方法在其中,如果您使用artisan命令创建控制器,它将自动生成所有必需的方法

      <?php
      
      namespace App\Http\Controllers;
      
      use Illuminate\Http\Request;
      use App\Http\Requests;
      
      
      class QuoteController extends Controller
      {
        public function index(){
      
              return view('welcome');
          }
          public function create(){
              return view('test');
          }
      public function store(Request $request){
             // Some Code here
          }
      }
      

      laravel文档中的
      “一旦您为给定的路由指定了一个名称,您可以在通过全局
      路由
      功能生成URL或重定向时使用该路由的名称。”我认为这意味着您缺少了
      路由::post(“创建”…
      在你的routes.php中。你想做的是表单不提交??或者你的视图有问题?@apokryfos在
      route.php
      第二个路由呢??这就是你所说的吗?@BindeshPandya我只是在测试表单的路由是否有效。当我单击submit按钮刷新缓存的rou时,它会给我找不到路由tes,请使用
      php artisan route:clear
      。如果您想查看所有路由,以查看它们是否已正确注册,可以使用
      php artisan route:list
      。希望这能有所帮助。您应该更清楚地了解您从laravel文档中得到的错误以及您对问题的期望“一旦为给定路由指定了名称,您可以在通过全局
      路由
      函数生成URL或重定向时使用路由的名称。”我认为这意味着您缺少
      路由::post(“创建”)"…
      在你的routes.php中。你想做的是表单不提交??或者你的视图有问题?@apokryfos在
      route.php
      第二个路由呢??这就是你所说的吗?@BindeshPandya我只是在测试表单的路由是否有效。当我单击submit按钮刷新缓存的rou时,它会给我找不到路由tes,使用
      php artisan route:clear
      。如果您想查看所有的路由以查看它们是否已正确注册,可以使用
      php artisan route:list
      。希望这有帮助。您应该更清楚地了解您在问题中遇到的错误以及您的期望!Laravel 5.xAlso,y中没有
      表单:
      您不再需要web中间件-这现在由路由服务提供商来处理。@Pyton默认的Laravel安装中没有
      表单::
      。您仍然可以通过composer将其作为依赖项添加。我认为这是为了使Laravel更加模块化,并让开发人员在需要时选择其他模块。我知道,但是作者不能。Laravel 5.xAlso中没有
      表单::
      ,您不再需要web中间件-这现在由路由服务提供商处理。@Pyton默认的Laravel安装中没有
      表单::
      。您仍然可以通过composer将其作为依赖项添加。我认为这个想法是为了使Laravel更加模块化,更加安全如果开发人员需要,让他们选择其他模块。我知道,但作者不能。