Laravel по-русски

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

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

#1 Laravel 5.x » apache вместо nginx » 10.09.2017 12:54:46

Yura_Yushkevich
Ответов: 0

Настраивал сайт на Битрикс, но он зараза напрочь отказывался работать с nginx,
в результате nginx удалил и поставил apache.

в homestead.yaml вот такие связки

sites:
    - map: homestead.app
      to: /home/vagrant/Code/public
    - map: info.loc
      to: /home/vagrant/Code/info
      php: "5.6"
      type: apache
    - map: mexovoy.loc
      to: /home/vagrant/Code/mexovoy
      php: "5.6"
    - map: phpmyadmin.loc
      to: /home/vagrant/Code/phpmyadmin

при вводе в адресную строку к примеру info.loc появляется главная страница Apache которая говорит что все работает....
но почему не появляется сам сайт?
Больше нигде ничего не прописывал.... мне кажется где-то еще нужно прописать пути, но вот где? Заранее спасибо!

#2 Re: Laravel 5.x » Не работает Multiple PHP Versions » 10.09.2017 11:00:33

Переустановил Homestead все заработало. Спасибо. Проблема решена

#3 Laravel 5.x » Не работает Multiple PHP Versions » 10.09.2017 10:24:15

Yura_Yushkevich
Ответов: 1

В файле Homestead.yaml
прописываю
    - map: mexovoy.loc
      to: /home/vagrant/Code/mexovoy/
      php: "5.6"    

однако все равно используется php 7.1

Почему может не работать, может кто-нить подскажет куда копать. Заранее спасибо.

#5 Re: Laravel 5.x » Ошибка при миграции » 17.08.2017 14:49:34

выдает ошибку:
[Symfony\Component\Debug\Exception\FatalThrowableError]
  Call to a member function nullable() on null

Мне кажется что-то не подключено...но что?

#6 Laravel 5.x » Ошибка при миграции » 17.08.2017 14:25:43

Yura_Yushkevich
Ответов: 4

При попытке миграции выдает вот такую ошибку

[Symfony\Component\Debug\Exception\FatalThrowableError]
Call to a member function default() on null

Вот сам код, да, ошибку начало выдавать когда я пытаюсь вставить значения полей по умолчанию

<?php

use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreatePagesTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {

        Schema::create('pages', function (Blueprint $table) {

            $table->increments('id');
            $table->string('name')->default('NULL');
            $table->text('text')->default('NULL');
            $table->string('alias')->default('NULL');
            $table->timestamps()->default('NULL');
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('pages');
    }
}

#7 Re: Laravel 5.x » Вопрос по странице с формой » 16.08.2017 09:49:30

Да, Вы правы, всё получилось. Спасибо за помощь.

#8 Re: Laravel 5.x » Вопрос по странице с формой » 16.08.2017 06:57:26

Хм.... действительно.... а почему тогда в $request не приходят данные которые я отправляю из формы (POST).
В массив приходит только токен.

#9 Laravel 5.x » Вопрос по странице с формой » 15.08.2017 21:55:02

Yura_Yushkevich
Ответов: 4

Здравствуйте, помогите разобраться.
Прописываю роут

Route::match(['get','post'],'/contact', ['uses'=>'Admin\ContactController@show','as'=>'contact']);

далее контроллер

<?php

namespace App\Http\Controllers\Admin;

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


class ContactController extends Controller
{
    public function show(Request $request) {
        $array = array(
            'title'=>'Contacts'
        );

        if (view()->exists('default.contact')){
             print_r($request->all());
            return view('default.contact', $array);
        }
        abort(404);
    }
}

после чего сама форма

@extends('default.layouts.layout')
@section('content')
    <h2>Contact us!</h2>
    <form method="post" action="{{route('contact')}}">
        {{ csrf_field() }}
        <div class="form-group">
            <label for="exampleInputEmail1">Email address</label>
            <input type="email" class="form-control" id="exampleInputEmail1" aria-describedby="emailHelp" placeholder="Enter email">
            <small id="emailHelp" class="form-text text-muted">We'll never share your email with anyone else.</small>
        </div>
        <div class="form-group">
            <label for="exampleInputPassword1">Password</label>
            <input type="password" class="form-control" id="exampleInputPassword1" placeholder="Password">
        </div>
        <div class="form-check">
            <label class="form-check-label">
                <input type="checkbox" class="form-check-input">
                Check me out
            </label>
        </div>
        <button type="submit" class="btn btn-primary">Submit</button>
    </form>
@endsection

Когда открываю страницу contact, загружается форма и в самом верху отображается
Array ( [_token] => LaJLs0QIDiLykZTwjr3DjasbY3dyKfOsbBh6OezQ )
Не могу понять почему он отображается на странице, я ведь его нигде не вывожу?
И ещё, в контроллере я прописываю print_r($request->all()), однако данный метод я так понимаю не срабатывает, по крайней мере я ничего не вижу (код страницы открывал - там ничего нет).

#10 Re: Laravel 5.x » Ошибка TokenMismatchException in VerifyCsrfToken.php line 68: » 31.07.2017 20:58:36

Пишу для тех кто тоже занимается по видеоурокам и столкнулся с такой же проблемой.
Необходимо создать 2 rout в файле web.php

PHP
Route::get('/comments',function (){
    return 
view('form');
});
Route::post('/comments',function (){
    
print_r($_POST);
});

1-ый ведет на форму, которую необходимо поместить в resources/views/form.blade.php
2-ой обрабатывает саму форму.
Да, ошибка выскакивает именно из-за не использования csrf_field().
форму в файле resources/views/form.blade.php
писать так:

PHP
<form action="/comments" method="POST">
    {{ 
csrf_field() }}
    
Имя:
    <
input type="text" name="name"><br/>
    
Комментарий:<br/>
    <
textarea name="text" id="text" cols="30" rows="10"></textarea>
    <!--<
input type="hidden" name="_method" value="PUT">-->
    <
br/>
    <
input type="submit" value="Добавить">
</
form>

Может кому-нить поможет.

#11 Re: Laravel 5.x » Ошибка TokenMismatchException in VerifyCsrfToken.php line 68: » 30.07.2017 21:59:49

Может без контроллера нельзя отправлять данные POST

#12 Re: Laravel 5.x » Ошибка TokenMismatchException in VerifyCsrfToken.php line 68: » 30.07.2017 21:58:35

PHP
forma.php

результат аналогичный forma.html

PHP
forma.blade.php

не открывается из строки браузера т.к. прав нет — это же не public

#13 Re: Laravel 5.x » Ошибка TokenMismatchException in VerifyCsrfToken.php line 68: » 30.07.2017 21:04:17

Если я в файле forma.html пропишу вот этот код

xml<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Форма</title>
</head>
<body>

<form action="/comments" method="POST">
    {{ csrf_field() }}
    Имя:
    <input type="text" name="name"><br/>
    Комментарий:<br/>
    <textarea name="text" id="text" cols="30" rows="10"></textarea>
    <!--<input type="hidden" name="_method" value="PUT">-->
    <br/>
    <input type="submit" value="Добавить">
</form>


</body>
</html>

то всё будет видно, вот к примеру
http://joxi.ru/n2YZMlBHjeZ7vA

Я это всё к чему, может у меня что-то не подключено что обрабатывает

xml{{ csrf_field() }}

#14 Re: Laravel 5.x » Ошибка TokenMismatchException in VerifyCsrfToken.php line 68: » 30.07.2017 17:44:08

или так

xml<form action="/comments" method="POST">
    <input type="hidden" name="csrf_field" value="{{csrf_field() }}">
    Имя:
    <input type="text" name="name"><br/>
    Комментарий:<br/>
    <textarea name="text" id="text" cols="30" rows="10"></textarea>
    <!--<input type="hidden" name="_method" value="PUT">-->
    <br/>
    <input type="submit" value="Добавить">
</form>

#16 Re: Laravel 5.x » Ошибка TokenMismatchException in VerifyCsrfToken.php line 68: » 30.07.2017 17:15:25

Ничего не понял, просто вставить

PHP
{{ csrf_field() }}

между тегами <form>?
Так оно же отобразится на экране… (((

xml<form action="/comments" method="POST">
    {{ csrf_field() }}
    Имя:
    <input type="text" name="name"><br/>
    Комментарий:<br/>
    <textarea name="text" id="text" cols="30" rows="10"></textarea>
    <!--<input type="hidden" name="_method" value="PUT">-->
    <br/>
    <input type="submit" value="Добавить">
</form>

#17 Re: Laravel 5.x » Ошибка TokenMismatchException in VerifyCsrfToken.php line 68: » 29.07.2017 21:28:17

Аналогичная ошибка выскакивает, только я вообще не использую контроллеры, у меня все до ужаса просто

файл html с формой

xml<body>
<form action="/comments" method="POST">
    Имя:
    <input type="text" name="name"><br/>
    Комментарий:<br/>
    <textarea name="text" id="text" cols="30" rows="10"></textarea>
    <br/>
    <input type="submit" value="Добавить">
</form>
</body>

а вот web.php

PHP
Route::post('/comments',function (){
    
print_r($_POST);
});

и всё больше ничего нет....
GET работает без проблем

#18 Re: Общий раздел » Как изменить версию php » 28.07.2017 08:37:15

Это вообще возможно?
Я так понимаю нужно удалить php7.1 и установить php5.6.
Какими командами это сделать? будет ли потом все работать?

#19 Общий раздел » Как изменить версию php » 27.07.2017 21:28:43

Yura_Yushkevich
Ответов: 2

Я прошу прощения может не совсем по теме, но я думаю профи использующие laravel встречались с данной проблемой.
Я установил Homestead+PHP Version 7.1.7-1+ubuntu16.04.1+deb.sury.org+1 (Ngnx 1.11.9).
Подскажите как можно изменить версию используемого php на 5.6.
Заранее всем спасибо за ответы.

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