2014-09-21 2 views
0

Я разрабатываю веб-приложение с laravel 4.2 (PHP 5.4.25) в качестве бэкэнд-фреймворка.Laravel не загружает моих просмотров

Когда я запускаю свою индексную страницу с IDE, он возвращает мне первый взгляд, что я ожидал, но когда я называю его из браузера он показывает мне эту ошибку:

substr() expects parameter 1 to be string, object given 

Это является экраном ошибка

enter image description here

Это мой маршрут файлы:

<?php 

// Route to home page 
Route::get('/', array('as' => 'home', function() { 
    Log::debug('**** Load home page view'); 
    if (Auth::check()) { 
     return View::make('dashboard'); 
    } else { 
     return View::make('login'); 
    } 
})); 

Я извлекаю содержимое общей папки laravel внутри корня и после того, как я обновил путь к стартовым файлам. Однако индексный файл, если он запущен внутри IDE (PHPStorm), отлично работает и возвращает мне вид входа.

Войти Вид:

<!doctype html> 
<html lang="en"> 
<head> 
    <meta charset="UTF-8"> 
    <title>Login</title> 
</head> 
<body> 

</body> 
</html> 

вид Dashboard:

<!doctype html> 
<html lang="en"> 
<head> 
    <meta charset="UTF-8"> 
    <title>Dashboard</title> 
</head> 
<body> 

</body> 
</html> 

Что я не так?


EDIT: Проблема заключается в файле app/config/session.php, я изменил файл с оригинальной файл Laravel и все работает отлично.

Вот мой неверный конфигурационный файл сеанса:

<?php 

return array(

    /* 
    |-------------------------------------------------------------------------- 
    | Default Session Driver 
    |-------------------------------------------------------------------------- 
    | 
    | This option controls the default session "driver" that will be used on 
    | requests. By default, we will use the lightweight native driver but 
    | you may specify any of the other wonderful drivers provided here. 
    | 
    | Supported: "file", "cookie", "database", "apc", 
    |   "memcached", "redis", "array" 
    | 
    */ 

    'driver' => 'database', 

    /* 
    |-------------------------------------------------------------------------- 
    | Session Lifetime 
    |-------------------------------------------------------------------------- 
    | 
    | Here you may specify the number of minutes that you wish the session 
    | to be allowed to remain idle before it expires. If you want them 
    | to immediately expire on the browser closing, set that option. 
    | 
    */ 

    'lifetime' => 120, 

    'expire_on_close' => false, 

    /* 
    |-------------------------------------------------------------------------- 
    | Session File Location 
    |-------------------------------------------------------------------------- 
    | 
    | When using the native session driver, we need a location where session 
    | files may be stored. A default has been set for you but a different 
    | location may be specified. This is only needed for file sessions. 
    | 
    */ 

    'files' => storage_path().'/sessions', 

    /* 
    |-------------------------------------------------------------------------- 
    | Session Database Connection 
    |-------------------------------------------------------------------------- 
    | 
    | When using the "database" or "redis" session drivers, you may specify a 
    | connection that should be used to manage these sessions. This should 
    | correspond to a connection in your database configuration options. 
    | 
    */ 

    'connection' => DB::connection('mysql'), 

    /* 
    |-------------------------------------------------------------------------- 
    | Session Database Table 
    |-------------------------------------------------------------------------- 
    | 
    | When using the "database" session driver, you may specify the table we 
    | should use to manage the sessions. Of course, a sensible default is 
    | provided for you; however, you are free to change this as needed. 
    | 
    */ 

    'table' => 'sessions', 

    /* 
    |-------------------------------------------------------------------------- 
    | Session Sweeping Lottery 
    |-------------------------------------------------------------------------- 
    | 
    | Some session drivers must manually sweep their storage location to get 
    | rid of old sessions from storage. Here are the chances that it will 
    | happen on a given request. By default, the odds are 2 out of 100. 
    | 
    */ 

    'lottery' => array(2, 100), 

    /* 
    |-------------------------------------------------------------------------- 
    | Session Cookie Name 
    |-------------------------------------------------------------------------- 
    | 
    | Here you may change the name of the cookie used to identify a session 
    | instance by ID. The name specified here will get used every time a 
    | new session cookie is created by the framework for every driver. 
    | 
    */ 

    'cookie' => 'laravel_session', 

    /* 
    |-------------------------------------------------------------------------- 
    | Session Cookie Path 
    |-------------------------------------------------------------------------- 
    | 
    | The session cookie path determines the path for which the cookie will 
    | be regarded as available. Typically, this will be the root path of 
    | your application but you are free to change this when necessary. 
    | 
    */ 

    'path' => '/', 

    /* 
    |-------------------------------------------------------------------------- 
    | Session Cookie Domain 
    |-------------------------------------------------------------------------- 
    | 
    | Here you may change the domain of the cookie used to identify a session 
    | in your application. This will determine which domains the cookie is 
    | available to in your application. A sensible default has been set. 
    | 
    */ 

    'domain' => null, 

    /* 
    |-------------------------------------------------------------------------- 
    | HTTPS Only Cookies 
    |-------------------------------------------------------------------------- 
    | 
    | By setting this option to true, session cookies will only be sent back 
    | to the server if the browser has a HTTPS connection. This will keep 
    | the cookie from being sent to you if it can not be done securely. 
    | 
    */ 

    'secure' => false, 

); 

Благодаря

+0

На ваш взгляд, вы используете 'Str :: endsWith ($ something)' или function 'ends_with ($ something)'? –

+0

@DavidBarker Нет, мой взгляд пуст. – PapaSmurf

+0

Трудно сказать, что случилось. Когда вы запускаете из IDE, отображается ли эта пустая страница входа? Какой URL-адрес вы запускаете в своем браузере? У вас есть только файл 'login.php' или, может быть,' login.blade.php'? –

ответ

0

Проблема была в app/config/session.php.

Я заменил 'connection' => DB::connection('mysql'),'connection' => null, и все работает нормально.

0

По сбрасывали ошибка, это не проблема, с вашей точки зрения, но, так или иначе, в вашем соединении с базой данных. Менеджер базы данных не может проанализировать имя подключения к базе данных. Это может быть вызвано Auth::check(). Проверьте, правильно ли настроена ваша база данных.

+0

Я разработал и запустил много модульных тестов, которые использовали БД. Теперь я попытался изменить свой маршрут таким образом: 'Route :: get ('/', array ('as' => 'home', function() {return View :: make ('login');})); ', но когда я вызываю индексную страницу, она возвращает мне ту же ошибку. – PapaSmurf

+0

Я не вижу весь ваш код, но могу ли я сказать, что что-то пытается поразить вашу базу данных, может быть, другой пакет? –

+0

Я проверил его, и это не проблема с БД. Даже если вы внесли в свою базу данных недопустимые данные подключения, что довольно странно, 'Auth :: check()' не будет вызывать исключение. –

Смежные вопросы