安装了Laravel 5但刀片和路由无法正常工作,该怎么办?

时间:2015-08-04 07:06:50

标签: php apache laravel laravel-routing

现在已经被困2天了,我已经对互联网进行了广泛的研究,但却无法使用这个东西。我已经使用composer安装了laravel 5,接下来是一些教程,但由于某种原因,当我创建新视图时,它会重新路由到我的公共文件夹而不是views文件夹。 安装目录: C:\ XAMPP \ htdocs中\项目名称\ 我在http.conf中启用了覆盖全部 我的根目录设置为: " C:/ XAMPP / htdocs中/项目名称/公共"

当我在浏览器中键入localhost时,welcome.blade.php会正确加载并显示。 我创建了一个新的控制器:

<?php
class authors extends Controller{   
public $restful=true;
public function get_index(){
        // return view::make('authors.index');
        $view= view::make('authors.index',array('name'=>'My Name'))->with ('email','28');
        $view->location='amsterdam';
        return $view;
}}

routes.php如下所示:

Route::get('/', function () {
    return view('welcome');
});

Route::get('authors', array('uses'=>'authors@index'));

内部视图我创建了一个名为authors的文件夹,在该文件夹中我放置了index.blade.php:

 测试     
    

现在当我尝试找到localhost / authors时,它应该重定向到子文件夹作者并打开index.blade.php,但我得到:

Index of /authors

[ICO]   Name    Last modified   Size    Description
[PARENTDIR] Parent Directory        -    
[TXT]   index.blade.php 2015-08-04 07:46    209  
Apache/2.4.12 (Win32) OpenSSL/1.0.1m PHP/5.6.11 Server at localhost Port 80

我可以直接到公共文件夹并在那里调用index.php,但是刀片模板在那里没有工作,我无法从$ view中调用日期(例如$ name) ,$ email等)。 我检查了文件夹权限,并确保正确设置了文件夹权限。我还尝试了以下事项:
- 重新安装laravel(没有工作)
- 从WAMP开始并切换到XAMP(没有工作)

我刚刚开始使用Laravel,因为它看起来非常友好,节省时间,因为我有点厌倦了sql查询,我需要一个可靠的密码保护框架。我使用html,css和php准备好了我的网站。现在,最后一步是实施laravel以改进未来的功能和稳定性。 我真的被困在这里,请帮助我,这样我就可以完成我的网站并以安全的方式上网

3 个答案:

答案 0 :(得分:0)

因为我已经使用了几天而不太熟悉laravel。也许尝试下面的代码而不是制作数组?

Route::get('authors','authors@index');

答案 1 :(得分:0)

您必须在apache配置中启用mod_rewrite。打开httpd.conf(或apache2.conf,它取决于你的Apache安装)并取消注释以“LoadModule rewrite_module”开头的行。

答案 2 :(得分:0)

在配置中已经启用了mod_rewrite。我的一个朋友走进来帮助我。看起来我在Laravel5中使用了一些旧的Laravel 4代码。

将控制器重命名为:AuthorController,将函数更改为索引并删除public $ restful = true。 改变路线:

Route::get('authors', array('uses'=>'AuthorController@index'));

最初我把一个页面放在公共文件夹中。 .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]
</IfModule>

基本上将我重定向到index.php

希望这对其他人有用,感谢您花时间回复