Laravel по-русски

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

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

#1 25.07.2017 11:16:57

Laravel 5.4 invalid request (unexpected eof)

Здравствуйте. Делаю свой небольшой блог. Возникла проблемка с переходами по url. Для создания и редактирования постов создала контроллер PostController. Так вот. У меня неправильно отрабатывают все методы контроллера, кроме @index. Когда пытаюсь зайти по url http://localhost:8000/admin/post/create artisan мне выдает ошибку invalid request (unexpected eof), хотя такой путь существует. Метод как бы отрабатывает, страница рендерится, но выдается пользователю без маломальских стилей.

Вот так:
XOkEn.png

А должно быть вот так:
rnE5M.png

Прикрепляю еще список роутов, которые задействованы и ошибку, которую выдает мне сервер.
k3Jfq.png

Буду рада любой помощи.

Не в сети

#2 25.07.2017 11:30:32

Re: Laravel 5.4 invalid request (unexpected eof)

Скорее всего ты в одном из представлений (views) не закрыл какой-нибудь if, foreach и пр. Покажи представления, которые участвуют в запросе.

Не в сети

#3 25.07.2017 11:47:28

Re: Laravel 5.4 invalid request (unexpected eof)

Файл, который вызываю в методе create():

@extends('admin/layouts/app')
@section('main-content')
 <!-- Content Wrapper. Contains page content -->
  <div class="content-wrapper">
    <!-- Content Header (Page header) -->
    <section class="content-header">
      <h1>
        Create post
      </h1>
    </section>
    <div class="box box-primary">
            <!-- form start -->
            <form role="form">
              <div class="box-body">
                <div class="form-group">
                  <label for="title">Post title</label>
                  <input type="text" class="form-control" id="title" name="title" placeholder="Enter title">
                </div>
                <div class="form-group">
                  <label for="subtitle">Post subtitle</label>
                  <input type="text" class="form-control" id="subtitle" name="subtitle" placeholder="Enter subtitle">
                </div>
                <div class="form-group">
                  <label for="slug">Post slug</label>
                  <input type="text" class="form-control" id="slug" name="slug" placeholder="Enter slug">
                </div>
			      <div class="box-body pad">
			         <form>
			           <textarea class="textarea" name="body" placeholder="Place some text here" style="width: 50%; height: 200px; font-size: 14px; line-height: 18px; border: 1px solid #dddddd; padding: 10px;"></textarea>
			          </form>
			      </div>
			     <div class="form-group">
                  <label for="image">File input</label>
                  <input type="file" id="image" name="image">
                </div>
                <div class="checkbox">
                  <label>
                    <input type="checkbox" name="status"> Publish
                  </label>
                </div>
              </div>
              <div class="box-footer">
                <button type="submit" class="btn btn-primary">Save</button>
              </div>
            </form>
          </div>
@endsection

А вот файл, от которого унаследована эта вьюха:

<!DOCTYPE html>
<html>
<head>
	@include('admin.layouts.head')
</head>
<body class="hold-transition skin-purple sidebar-mini">
	<div class="wrapper">
	@include('admin.layouts.header')

	@include('admin.layouts.sidebar')

	@section('main-content')
	@show

	@include('admin.layouts.footer')

	</div>
</body>
</html>

Дело в том, что я думаю, что с виюхой все нормально. Я ее же подключала в индексном методе этого контроллера и все было хорошо. Страничка рендерится и стили на своих местах.

Изменено kittycat_13 (25.07.2017 12:03:41)

Не в сети

#4 25.07.2017 12:07:54

Re: Laravel 5.4 invalid request (unexpected eof)

@extends должен выглядеть так:

@extends('admin.layouts.app')

Еще, у тебя участвуют представления, которые ты вставляешь через @include и которые ты не показала.

Если ты думаешь, что в представлениями все нормально, смотри другие файлы, например маршруты, контроллер, посредников (middleware) и пр. Но сначала разберись в представлениями, обычно ошибка в них.

Изменено AlexeyMezenin (25.07.2017 12:10:27)

Не в сети

#5 25.07.2017 12:16:32

Re: Laravel 5.4 invalid request (unexpected eof)

Извиняюсь.
Вот head.blade.php

<meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <title>AdminLTE 2 | Dashboard</title>
  <!-- Tell the browser to be responsive to screen width -->
  <meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport">
  <!-- Bootstrap 3.3.6 -->
  <link rel="stylesheet" href="bootstrap/css/bootstrap.min.css">
  <!-- Font Awesome -->
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.5.0/css/font-awesome.min.css">
  <!-- Ionicons -->
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/ionicons/2.0.1/css/ionicons.min.css">
  <!-- Theme style -->
  <link rel="stylesheet" href="dist/css/AdminLTE.min.css">
  <!-- AdminLTE Skins. Choose a skin from the css/skins
       folder instead of downloading all of them to reduce the load. -->
  <link rel="stylesheet" href="dist/css/skins/_all-skins.min.css">
  <!-- iCheck -->
  <link rel="stylesheet" href="plugins/iCheck/flat/blue.css">
  <!-- Morris chart -->
  <link rel="stylesheet" href="plugins/morris/morris.css">
  <!-- jvectormap -->
  <link rel="stylesheet" href="plugins/jvectormap/jquery-jvectormap-1.2.2.css">
  <!-- Date Picker -->
  <link rel="stylesheet" href="plugins/datepicker/datepicker3.css">
  <!-- Daterange picker -->
  <link rel="stylesheet" href="plugins/daterangepicker/daterangepicker.css">
  <!-- bootstrap wysihtml5 - text editor -->
  <link rel="stylesheet" href="plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.min.css">

  <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
  <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
  <!--[if lt IE 9]>
  <script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
  <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
  <![endif]-->

Файл header.blade.php

<header>
<a href="index2.html" class="logo">
      <!-- mini logo for sidebar mini 50x50 pixels -->
      <span class="logo-mini"><b>A</b>LT</span>
      <!-- logo for regular state and mobile devices -->
      <span class="logo-lg"><b>Admin</b>Blog</span>
    </a>
    <!-- Header Navbar: style can be found in header.less -->
    <nav class="navbar navbar-static-top">
      <!-- Sidebar toggle button-->
      <a href="#" class="sidebar-toggle" data-toggle="offcanvas" role="button">
        <span class="sr-only">Toggle navigation</span>
      </a>

      <div class="navbar-custom-menu">
        <ul class="nav navbar-nav">
          <!-- Messages: style can be found in dropdown.less-->
          <li class="dropdown messages-menu">
            <a href="#" class="dropdown-toggle" data-toggle="dropdown">
              <i class="fa fa-envelope-o"></i>
              <span class="label label-success">4</span>
            </a>
            <ul class="dropdown-menu">
              <li class="header">You have 4 messages</li>
              <li>
                <!-- inner menu: contains the actual data -->
                <ul class="menu">
                  <li><!-- start message -->
                    <a href="#">
                      <div class="pull-left">
                        <img src="dist/img/user2-160x160.jpg" class="img-circle" alt="User Image">
                      </div>
                      <h4>
                        Support Team
                        <small><i class="fa fa-clock-o"></i> 5 mins</small>
                      </h4>
                      <p>Why not buy a new awesome theme?</p>
                    </a>
                  </li>
                  <!-- end message -->
                  <li>
                    <a href="#">
                      <div class="pull-left">
                        <img src="dist/img/user3-128x128.jpg" class="img-circle" alt="User Image">
                      </div>
                      <h4>
                        AdminLTE Design Team
                        <small><i class="fa fa-clock-o"></i> 2 hours</small>
                      </h4>
                      <p>Why not buy a new awesome theme?</p>
                    </a>
                  </li>
                  <li>
                    <a href="#">
                      <div class="pull-left">
                        <img src="dist/img/user4-128x128.jpg" class="img-circle" alt="User Image">
                      </div>
                      <h4>
                        Developers
                        <small><i class="fa fa-clock-o"></i> Today</small>
                      </h4>
                      <p>Why not buy a new awesome theme?</p>
                    </a>
                  </li>
                  <li>
                    <a href="#">
                      <div class="pull-left">
                        <img src="dist/img/user3-128x128.jpg" class="img-circle" alt="User Image">
                      </div>
                      <h4>
                        Sales Department
                        <small><i class="fa fa-clock-o"></i> Yesterday</small>
                      </h4>
                      <p>Why not buy a new awesome theme?</p>
                    </a>
                  </li>
                  <li>
                    <a href="#">
                      <div class="pull-left">
                        <img src="dist/img/user4-128x128.jpg" class="img-circle" alt="User Image">
                      </div>
                      <h4>
                        Reviewers
                        <small><i class="fa fa-clock-o"></i> 2 days</small>
                      </h4>
                      <p>Why not buy a new awesome theme?</p>
                    </a>
                  </li>
                </ul>
              </li>
              <li class="footer"><a href="#">See All Messages</a></li>
            </ul>
          </li>
          <!-- Notifications: style can be found in dropdown.less -->
          <li class="dropdown notifications-menu">
            <a href="#" class="dropdown-toggle" data-toggle="dropdown">
              <i class="fa fa-bell-o"></i>
              <span class="label label-warning">10</span>
            </a>
            <ul class="dropdown-menu">
              <li class="header">You have 10 notifications</li>
              <li>
                <!-- inner menu: contains the actual data -->
                <ul class="menu">
                  <li>
                    <a href="#">
                      <i class="fa fa-users text-aqua"></i> 5 new members joined today
                    </a>
                  </li>
                  <li>
                    <a href="#">
                      <i class="fa fa-warning text-yellow"></i> Very long description here that may not fit into the
                      page and may cause design problems
                    </a>
                  </li>
                  <li>
                    <a href="#">
                      <i class="fa fa-users text-red"></i> 5 new members joined
                    </a>
                  </li>
                  <li>
                    <a href="#">
                      <i class="fa fa-shopping-cart text-green"></i> 25 sales made
                    </a>
                  </li>
                  <li>
                    <a href="#">
                      <i class="fa fa-user text-red"></i> You changed your username
                    </a>
                  </li>
                </ul>
              </li>
              <li class="footer"><a href="#">View all</a></li>
            </ul>
          </li>
          <!-- Tasks: style can be found in dropdown.less -->
          <li class="dropdown tasks-menu">
            <a href="#" class="dropdown-toggle" data-toggle="dropdown">
              <i class="fa fa-flag-o"></i>
              <span class="label label-danger">9</span>
            </a>
            <ul class="dropdown-menu">
              <li class="header">You have 9 tasks</li>
              <li>
                <!-- inner menu: contains the actual data -->
                <ul class="menu">
                  <li><!-- Task item -->
                    <a href="#">
                      <h3>
                        Design some buttons
                        <small class="pull-right">20%</small>
                      </h3>
                      <div class="progress xs">
                        <div class="progress-bar progress-bar-aqua" style="width: 20%" role="progressbar" aria-valuenow="20" aria-valuemin="0" aria-valuemax="100">
                          <span class="sr-only">20% Complete</span>
                        </div>
                      </div>
                    </a>
                  </li>
                  <!-- end task item -->
                  <li><!-- Task item -->
                    <a href="#">
                      <h3>
                        Create a nice theme
                        <small class="pull-right">40%</small>
                      </h3>
                      <div class="progress xs">
                        <div class="progress-bar progress-bar-green" style="width: 40%" role="progressbar" aria-valuenow="20" aria-valuemin="0" aria-valuemax="100">
                          <span class="sr-only">40% Complete</span>
                        </div>
                      </div>
                    </a>
                  </li>
                  <!-- end task item -->
                  <li><!-- Task item -->
                    <a href="#">
                      <h3>
                        Some task I need to do
                        <small class="pull-right">60%</small>
                      </h3>
                      <div class="progress xs">
                        <div class="progress-bar progress-bar-red" style="width: 60%" role="progressbar" aria-valuenow="20" aria-valuemin="0" aria-valuemax="100">
                          <span class="sr-only">60% Complete</span>
                        </div>
                      </div>
                    </a>
                  </li>
                  <!-- end task item -->
                  <li><!-- Task item -->
                    <a href="#">
                      <h3>
                        Make beautiful transitions
                        <small class="pull-right">80%</small>
                      </h3>
                      <div class="progress xs">
                        <div class="progress-bar progress-bar-yellow" style="width: 80%" role="progressbar" aria-valuenow="20" aria-valuemin="0" aria-valuemax="100">
                          <span class="sr-only">80% Complete</span>
                        </div>
                      </div>
                    </a>
                  </li>
                  <!-- end task item -->
                </ul>
              </li>
              <li class="footer">
                <a href="#">View all tasks</a>
              </li>
            </ul>
          </li>
          <!-- User Account: style can be found in dropdown.less -->
          <li class="dropdown user user-menu">
            <a href="#" class="dropdown-toggle" data-toggle="dropdown">
              <img src="dist/img/user2-160x160.jpg" class="user-image" alt="User Image">
              <span class="hidden-xs">Alexander Pierce</span>
            </a>
            <ul class="dropdown-menu">
              <!-- User image -->
              <li class="user-header">
                <img src="dist/img/user2-160x160.jpg" class="img-circle" alt="User Image">

                <p>
                  Alexander Pierce - Web Developer
                  <small>Member since Nov. 2012</small>
                </p>
              </li>
              <!-- Menu Body -->
              <li class="user-body">
                <div class="row">
                  <div class="col-xs-4 text-center">
                    <a href="#">Followers</a>
                  </div>
                  <div class="col-xs-4 text-center">
                    <a href="#">Sales</a>
                  </div>
                  <div class="col-xs-4 text-center">
                    <a href="#">Friends</a>
                  </div>
                </div>
                <!-- /.row -->
              </li>
              <!-- Menu Footer-->
              <li class="user-footer">
                <div class="pull-left">
                  <a href="#" class="btn btn-default btn-flat">Profile</a>
                </div>
                <div class="pull-right">
                  <a href="#" class="btn btn-default btn-flat">Sign out</a>
                </div>
              </li>
            </ul>
          </li>
          <!-- Control Sidebar Toggle Button -->
          <li>
            <a href="#" data-toggle="control-sidebar"><i class="fa fa-gears"></i></a>
          </li>
        </ul>
      </div>
    </nav>
  </header>

Файл sidebar.blade.php

<aside class="main-sidebar">
    <!-- sidebar: style can be found in sidebar.less -->
    <section class="sidebar">
      <!-- Sidebar user panel -->
      <div class="user-panel">
        <div class="pull-left image">
          <img src="dist/img/user2-160x160.jpg" class="img-circle" alt="User Image">
        </div>
        <div class="pull-left info">
          <p>Catherine Didenko</p>
        </div>
      </div>
      <!-- search form -->
      <form action="#" method="get" class="sidebar-form">
        <div class="input-group">
          <input type="text" name="q" class="form-control" placeholder="Search...">
              <span class="input-group-btn">
                <button type="submit" name="search" id="search-btn" class="btn btn-flat"><i class="fa fa-search"></i>
                </button>
              </span>
        </div>
      </form>
      <!-- /.search form -->
      <!-- sidebar menu: : style can be found in sidebar.less -->
      <ul class="sidebar-menu">
        <li class="header">MAIN NAVIGATION</li>
        <li class="active treeview">
          <a href="#">
            <i class="fa fa-dashboard"></i> <span>Blog</span>
            <span class="pull-right-container">
              <i class="fa fa-angle-left pull-right"></i>
            </span>
          </a>
          <ul class="treeview-menu">
            <li class="active"><a href="index.html"><i class="fa fa-circle-o"></i>Posts</a></li>
            <li class="active"><a href="index.html"><i class="fa fa-circle-o"></i>Categories</a></li>
            <li class="active"><a href="index.html"><i class="fa fa-circle-o"></i>Tags</a></li>
            <li class="active"><a href="index.html"><i class="fa fa-circle-o"></i>Users</a></li>
          </ul>
        </li>
      </ul>
    </section>
    <!-- /.sidebar -->
  </aside>

Файл footer.blade.php

<footer class="main-footer">
    <div class="pull-right hidden-xs">
      <b>Version</b> 2.3.8
    </div>
    <strong>Copyright &copy; 2014-2016 <a href="http://almsaeedstudio.com">Almsaeed Studio</a>.</strong> All rights
    reserved.
  </footer>

В файле маршрутов, всего один роут:

Route::resource('admin/post', 'PostController');

Контроллер тоже один - PostController и заполнен у него всего один метод:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class PostController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        //
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        return view('admin.post.post');
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        //
    }

    /**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function show($id)
    {
        //
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function edit($id)
    {
        //
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, $id)
    {
        //
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function destroy($id)
    {
        //
    }
}

Я вот просто не понимаю где тут может быть ошибка.

Изменено kittycat_13 (25.07.2017 12:20:29)

Не в сети

#6 25.07.2017 12:22:58

Re: Laravel 5.4 invalid request (unexpected eof)

Спасибо. Выглядит нормально.

Ты пишешь, что метод index обрабатывает нормально, т.е. если ты строку из create передаешь в index, то все работает?

Какую ошибку показывают логи storage/logs/laravel.log (смотри в конце)?

Изменено AlexeyMezenin (25.07.2017 12:24:15)

Не в сети

#7 25.07.2017 12:28:29

Re: Laravel 5.4 invalid request (unexpected eof)

Это последние записи в логах:

#3 D:\xampp\htdocs\blog\vendor\laravel\framework\src\Illuminate\Foundation\Console\Kernel.php(122): Symfony\Component\Console\Application->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#4 D:\xampp\htdocs\blog\artisan(35): Illuminate\Foundation\Console\Kernel->handle(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#5 {main}  

Не в сети

#8 25.07.2017 12:38:47

Re: Laravel 5.4 invalid request (unexpected eof)

Покажу саму ошибку (ты показываешь часть stack trace). Например:

[2017-06-10 12:03:23] local.ERROR: PDOException: SQLSTATE[HY000] [1049] Unknown database 'a' in /Users/al/p/personal/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:68
Stack trace:
#0...

Изменено AlexeyMezenin (25.07.2017 12:40:20)

Не в сети

#9 25.07.2017 12:44:48

Re: Laravel 5.4 invalid request (unexpected eof)

Тогда ошибок нет. Там есть единственная ошибка связанная с неправильным написанием команды make при создании контроллера.

[2017-07-25 07:01:51] local.ERROR: Symfony\Component\Console\Exception\CommandNotFoundException: There are no commands defined in the "meke" namespace.

Не в сети

#10 25.07.2017 12:49:39

Re: Laravel 5.4 invalid request (unexpected eof)

Если в логах ошибки нет, может это JS? Попробуй все JS/CSS закомментить и посмотри получаешь ли ты ошибку.

Не в сети

#11 25.07.2017 13:04:31

Re: Laravel 5.4 invalid request (unexpected eof)

А он вообще не видит ни JS ни СSS) Когда просматриваю код страницы есть все файлы. А вот сервер их не видит и не интерпретирует.

Не в сети

#12 25.07.2017 13:09:47

Re: Laravel 5.4 invalid request (unexpected eof)

Ну это отдельная проблема, подключать JS/CSS, нужно вот так:

<link rel="stylesheet" href="{{ asset('bootstrap/css/bootstrap.min.css') }}">

А пока попробуй просто убрать все JS и CSS из шаблона, просто чтобы быть уверенными, что не в них проблема. По идее, если ошибка где-то в классах, то должна быть ошибка в логах, которой нет.

Не в сети

#13 25.07.2017 13:36:24

Re: Laravel 5.4 invalid request (unexpected eof)

Я тут одну штуку заметила. Открыла код страницы для метода index и для метода сreate вместе. Так вот. Стили то на странице есть, но если index их открывает по такому маршруту http://localhost:8000/admin/bootstrap/css/bootstrap.min.css , то сreate их открывает вот так http://localhost:8000/admin/post/bootstrap/css/bootstrap.min.css. И соответственно мне выдается ошибка при открытии NotFoundHttpException. Походу у него путь к стилям неправильно генерируется. А как это исправить?

Не в сети

#14 25.07.2017 13:39:49

Re: Laravel 5.4 invalid request (unexpected eof)

Я выше показал. Используй asset(). Например, asset('bootstrap/bootstrap.css') сгенерирует URL для файла public/bootstrap/bootstrap.css

Изменено AlexeyMezenin (25.07.2017 13:45:31)

Не в сети

#15 25.07.2017 13:45:43

Re: Laravel 5.4 invalid request (unexpected eof)

Так перестает работать даже индексная страница. Файлы начинают подключаться по пути http://localhost:8000/bootstrap/css/bootstrap.min.css , а должны подключаться по http://localhost:8000/admin/bootstrap/css/bootstrap.min.css

Не в сети

#16 25.07.2017 13:47:08

Re: Laravel 5.4 invalid request (unexpected eof)

href="admin/{{ asset('bootstrap/css/bootstrap.min.css') }}"

Не в сети

#17 25.07.2017 13:47:27

Re: Laravel 5.4 invalid request (unexpected eof)

Все) Исправила) Просто admin дописала. Огромное спасибо Вам за помощь и потраченное время!:)

Не в сети

#18 25.07.2017 20:35:22

Re: Laravel 5.4 invalid request (unexpected eof)

Не надо делать так:

href="admin/{{ asset('bootstrap/css/bootstrap.min.css') }}"

Если bootstrap используется исключительно в админке, тогда сделай:

href="{{ asset('admin/bootstrap/css/bootstrap.min.css') }}"

Но лучше хранить его в public/css и в public/js. А еще лучше использовать CDN.


Веб сервер больше не показывает "Unexpected EOF"?

Изменено AlexeyMezenin (25.07.2017 20:36:53)

Не в сети

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