Laravel на Windows

Разбирам ги хората, защото няколко пъти съм се изказвал против Laravel :) . Истината е че не ми харесват някои работи, как са направени. И не само в Laravel, също и в други фреймуорци. Сигурно има смисъл да е направено така. Затова ще се запозная с нещата пък ще видим. Сега си свалих PhpStorm IDE да го пробвам. Има конзола, което е добре, така всичко ми е на едно място. Кажете някакви команди които се ползват често.
 
Нещо не мога да ги схвана тия рутове.
Сега имам HomeController с метод home и в рута Route::get('/', 'HomeController@home');
В урл-а имам localhost/laravel/public/ и ми излиза вю-то което викам от HomeController-a.

Така сега ме интересуват две неща, как да направя така че когато в урл-а имам localhost/laravel/public/ или localhost/laravel/public/home да ми зарежда същия контролер а когато имам localhost/laravel/public/about да зарежда AboutController?
 
teroristd каза:
Нещо не мога да ги схвана тия рутове.
Сега имам HomeController с метод home и в рута Route::get('/', 'HomeController@home');
В урл-а имам localhost/laravel/public/ и ми излиза вю-то което викам от HomeController-a.

Така сега ме интересуват две неща, как да направя така че когато в урл-а имам localhost/laravel/public/ или localhost/laravel/public/home да ми зарежда същия контролер а когато имам localhost/laravel/public/about да зарежда AboutController?


Код:
 Route::get('/home', 'HomeController@home');

 Route::get('/about', 'AboutController@about');

ще зарежда about() функцията от AboutController.
 
Ето какво имам.

routes.php
Код:
/*Route::get('/', function () {
    return view('welcome');
});*/

Route::get('/', 'HomeController@home');
Route::get('/home', 'HomeController@home');
Route::get('/about', 'AboutController@about');

HomeController.php
Код:
namespace App\Http\Controllers;
use Illuminate\Support\Facades\View;

use App\Http\Requests;

class HomeController extends Controller
{
    public function home()
    {
        return View::make('home');
    }
}


AboutController.php
Код:
namespace App\Http\Controllers;

use App\Http\Requests;
use Illuminate\Support\Facades\View;

class AboutController extends Controller
{
    public function about()
    {
        return View::make('about');
    }
}

В урл-а примерно http://localhost/laravel/public/about или home вади грешка. Ако е само localhost/laravel/public/ си викa HomeController-a.
 
Грешката не ми я промени след като го направих true но ето всичко което ми вади.

Код:
Sorry, the page you are looking for could not be found.

1/1
NotFoundHttpException in RouteCollection.php line 161:
in RouteCollection.php line 161
at RouteCollection->match(object(Request)) in Router.php line 821
at Router->findRoute(object(Request)) in Router.php line 691
at Router->dispatchToRoute(object(Request)) in Router.php line 675
at Router->dispatch(object(Request)) in Kernel.php line 246
at Kernel->Illuminate\Foundation\Http\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 52
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in CheckForMaintenanceMode.php line 44
at CheckForMaintenanceMode->handle(object(Request), object(Closure))
at call_user_func_array(array(object(CheckForMaintenanceMode), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 136
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32
at Pipeline->Illuminate\Routing\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 103
at Pipeline->then(object(Closure)) in Kernel.php line 132
at Kernel->sendRequestThroughRouter(object(Request)) in Kernel.php line 99
at Kernel->handle(object(Request)) in index.php line 54
 
Тия route-ове ги добавяш в app/Http/routes.php нали?

В случай, че е там, изпълни php artisan route:clear в конзолата и пробвай пак.
 
Някой да помогне. Преинсталнах Laravel, сега имам само един контролер с едно echo и един root и пак същата грешка си вади.

Код:
namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Requests;

class AboutController extends Controller {

    public function about() {

        echo 'asdf';
    }

}



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

Route::get('/about', 'AboutController@about');
 
teroristd каза:
Някой да помогне. Преинсталнах Laravel, сега имам само един контролер с едно echo и един root и пак същата грешка си вади.

Код:
namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Requests;

class AboutController extends Controller {

    public function about() {

        echo 'asdf';
    }

}



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

Route::get('/about', 'AboutController@about');

С коя версия си на Ларавел ?

Само, когато използваш контролера, тогава ли ти вади грешката? Ако се опиташ да извикаш с анонимна функция вюто ще работи ли ?
Също пробвай вместо /about да зададеш само about.
 
Значи ето какво се случва.

На локалхоста на xampp ми признава само главния роот примерно Route::get('/', 'AboutController@about'); който сочи към localhost/laravel/public/

Ако отворя вградения сървър примерно localhost:8000 работят рутовете и ги викам така localhost:8000/about

Разбирате за какво иде реч. Има ли начин това да се коригира? По удобно ми е да си работя на локалхоста на xampp ако може.
 
Вдигни си виртуален хост. Symfony може да работи така, но за Laravel не съм сигурен. Последно като работих с Laravel не ставаше, защото рутера парсва целия път като url.
 
teroristd каза:
Трябва ли нещо да инсталирам за да вдигна виртуален хост? Изобщо какво се прави?

Отваряш C:\WINDOWS\system32\drivers\etc\hosts и си добавяш отдоло на нов ред примерно:

Код:
127.0.0.1 site.laravel
Най-лесно е да копираш hosts на декстоп и да го промениш там.


След това ако xampp ти е инсталиран ан C-то намираш C:\xampp\apache\conf\httpd.conf
Код:
#Virtual hosts
#Include conf/extra/httpd-vhosts.conf

и го правиш на

Код:
#Virtual hosts
Include conf/extra/httpd-vhosts.conf

След това трябва да намериш extra\httpd-vhosts.conf ( C:\xampp\apache\conf\extra\httpd-vhosts.conf ) и да си добавиш новият виртуален хост там където Document root ти е пътят към public:

Код:
<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host2.example.com
    DocumentRoot "C:\xampp\www"
    ServerName site.laravel
    ErrorLog "logs/site.laravel-error.log"
    CustomLog "logs/site.laravel-access.log" common
</VirtualHost>

Рестартираш сървъра и влизаш през браузъра в site.laravel
 
Може ли сега да ми покажете как става работата с моделите? Ето примерен сценарий. Имам база данни примерно proba, таблица users и полета id, username, email, pass. В модела взимам данните, инжектирам модела в някакъв контролер, и в същия викам някакво вю, което показва информацията. Ако може за начало без eloquent.
 

Горе