Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 Re: Общий раздел » новичок: Route::get не находит шаблон запроса » 07.07.2017 14:19:29

а вот если выбросить из laravel.dev.conf строки, взятые из .htaccess, то curl laravel.dev работает, а curl laravel.dev/hello ожидаемо не находит каталог hello
Или туда, в /var/www/tmproot еще и саму директорию с laravel надо было записать? (уже на все готов)
PS
laravel.dev.conf-файл конфигурации сайта laravel.dev, лежит в sites-available

#2 Re: Общий раздел » новичок: Route::get не находит шаблон запроса » 07.07.2017 14:00:18

сделал, как написал Proger_XP. Результат

curl laravel.dev
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>400 Bad Request</title>
</head><body>
<h1>Bad Request</h1>
<p>Your browser sent a request that this server could not understand.<br />
</p>
<hr>
<address>Apache/2.4.10 (Debian) Server at laravel.dev Port 80</address>
</body></html>

#3 Re: Общий раздел » новичок: Route::get не находит шаблон запроса » 07.07.2017 13:40:42

у апача был какой-то параметр, при котором он не ходит по симлинкам

но у меня в той папке не только laravel лежит и все это прекрасно работает. Да и laravel, в принципе, работает. Только не хочет запускать ::get к пути, которого физически нет. А должен, если верить описаниям

#4 Re: Общий раздел » новичок: Route::get не находит шаблон запроса » 07.07.2017 13:22:46

замени index.php на простой <?php phpinfo();

я правильно сделал? в "родном" /public/index.php заменил содержимое на phpinfo(). Работает, разумеется. Вернул, как было

поменяй пути в conf и htaccess

вот тут я не понял. В каком conf надо менять пути? Поменял в /public/.htaccess (стал он такой)

Options +FollowSymLinks
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ /var/www/index.php [L]

как подхватывал /public/index.php, так и подхватывает. Что не так сделал?
У меня, кстати, в процессе борьбы с Laravel откуда-то взялся .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>

может он-то и самый правильный?

#5 Re: Общий раздел » новичок: Route::get не находит шаблон запроса » 07.07.2017 12:42:01

я подозреваю, стоит debian jessie…

именно так. И NetBeans 8.2 Вообще, не замечал косяков в связке apache-php. Я конечно, "не волшебник, я только учусь", но так, чтобы, как я понимаю, тривиальные функции Laravel не срабатывали, такой глюк уже, наверное, бы вылез
У меня в /var/www/ только одна ссылка на /home/<я>/web_projects и та нее и ее содержимое у всех полный доступ, так что не в нем дело

#7 Re: Общий раздел » новичок: Route::get не находит шаблон запроса » 07.07.2017 08:33:50

Сделать
'/hello'
а view()... оставить?

выдал экран ошибки программы

 (1/1) NotFoundHttpException
in RouteCollection.php (line 179)

после php artisan serve та же самая ошибка. Может, Laravel какой-то неправильный (как пчелы у Вини-Пуха). Во всяком случае NetBeans подсвечивает его красным и пишет, что проект содержит ошибки. Напирмер, в /vendor/symfony/http-kernel/Tests/Fixtures/Controller/NullableController.php (хотя там, кажется, нечему быть неправильным)

#8 Re: Общий раздел » новичок: Route::get не находит шаблон запроса » 05.07.2017 13:59:20

по-моему у mokynis просто не включен mod_rewrite в апаче.

на всякий случай посмотрел вывод phpinfo()

Loaded Modules    
core mod_so mod_watchdog http_core mod_log_config mod_logio mod_version mod_unixd mod_access_compat mod_alias mod_auth_basic mod_authn_core mod_authn_file mod_authz_core mod_authz_host mod_authz_user mod_autoindex mod_deflate mod_dir mod_env mod_filter mod_mime prefork mod_negotiation mod_php5 mod_rewrite mod_setenvif mod_status

#9 Re: Общий раздел » новичок: Route::get не находит шаблон запроса » 05.07.2017 13:47:56

стОит. Я сейчас курс слушаю (https://www.youtube.com/watch?v=R-oH8iTAhVc), там в web.php примерно такое (это я ооочень условно написал)

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

Route::get('{num}', function () {
    return "Привет {{', '.$num.' раз'}}!!";
    });

и во view test.blade.php

<?php $num=5; 
echo "<a href=".$num.">нажать</a>" ?>

и вот тут-то у лектора все нормально срабатывает, а у меня "404"

#10 Re: Общий раздел » новичок: Route::get не находит шаблон запроса » 05.07.2017 12:56:10

а это

Route::get('/', function () {
    return "Привет!!";
    });

почему тогда передается? Или где-то (в public?) надо создать папку "hello"?

#11 Re: Общий раздел » новичок: Route::get не находит шаблон запроса » 05.07.2017 12:35:08

laravel.log отсутствует
route:list пишет

+--------+----------+----------+------+---------+--------------+
| Domain | Method   | URI      | Name | Action  | Middleware   |
+--------+----------+----------+------+---------+--------------+
|        | GET|HEAD | /        |      | Closure | web          |
|        | GET|HEAD | api/user |      | Closure | api,auth:api |
|        | GET|HEAD | hello    |      | Closure | web          |
+--------+----------+----------+------+---------+--------------+

#12 Re: Общий раздел » новичок: Route::get не находит шаблон запроса » 05.07.2017 10:41:53

обижаете :-)! без доступа на запись у меня вообще ничего не работало

#14 Re: Общий раздел » новичок: Route::get не находит шаблон запроса » 04.07.2017 16:08:56

без толку. По прежнему, срабатывает только на get('/'). А на 'laravel.dev/hello' 404 ошибка

#15 Общий раздел » новичок: Route::get не находит шаблон запроса » 04.07.2017 13:04:01

mokynis
Ответов: 32

только начал изучать Laravel (в частности, тут  и тут ). Установлен apache2, php 5.6, Laravel 5.4
Пытаюсь в web.php поменять шаблон запроса

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

все работает

return "Привет!!";

тоже все хорошо. А вот так

Route::get('/hello', function () {
    return "Привет!!";  });

при вводе адреса localhost/hello пишет 404 URL не найден. Вот конфигурация apache'а

<VirtualHost *:80>
  ServerAdmin webmaster@localhost
DocumentRoot /var/www/php/laravel1/public
  <Directory /home/ja_krevedko/web_projects/laravel1/public>
    Options Indexes FollowSymlinks MultiViews Includes ExecCGI
    AllowOverride All
    Require all granted
  </Directory>
</VirtualHost>

apache2ctl -M ... и a2enmod rewrite на всякий случай выполнил. Что я делаю не так?

Подвал раздела