Laravel по-русски

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

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

#76 Laravel 5.x » Как вернуть ошибку в шаблон из пользовательского класса » 26.07.2016 14:15:39

MadHatter
Ответов: 9

Здравствуйте. Можно ли каким-нибудь способом вернуть ошибку в шаблон не из контроллера, а из пользовательского класса? Что-нибудь похожее на это:

class IndexController {
    $class = new Class();
    $class->method();
}
class Class{
    public function method(){
        return back()->withErrors(['Ошибка']);
    }
}

#77 Re: Laravel 5.x » Почта Mail.ru » 02.07.2016 14:50:46

Методом проб и ошибок выяснил что почта не отправляется только если указан адрес отправителя mail.ru, list.ru и т.д. С gmail.com все уходит отлично. Тоже самое и со стандартной функцией php mail(). В чем может быть проблема?

#78 Re: Laravel 5.x » Почта Mail.ru » 28.06.2016 20:09:59

Раньше да, только тогда все настройки были другие.
Сменил драйвер - Connection could not be established with host smtp.mail.ru [Connection timed out #110]
При старом драйвере возвращался 0.

#79 Laravel 5.x » Почта Mail.ru » 28.06.2016 16:56:26

MadHatter
Ответов: 3

Здравствуйте. Столкнулся с проблемой. Перестала отправляться почта с Mail.ru

MAIL_DRIVER=mail
MAIL_HOST=smtp.mail.ru
MAIL_PORT=465
MAIL_USERNAME=email@list.ru
MAIL_PASSWORD=password
MAIL_ENCRYPTION=tls

$mail = Mail::queue('emails.template', [], function ($message) {
    $message->to('recieveremail@mail.ru')->from('email@list.ru')->subject('Письмо');
});
dd($mail);

В чем может быть проблема?

#80 Re: Laravel 5.x » Не работают роуты » 30.04.2016 16:25:52

Попробовал дописать public. Не помогло. Ввожу в адресной строке айпишник сервера -> открывается index.php -> вызывается нужный роут, но шаблон не подключается, остается просто пустая страница. Сейчас конфиги выглядят так:
apache2.conf:
PidFile ${APACHE_PID_FILE}
Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5
User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}
HostnameLookups Off
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
IncludeOptional mods-enabled/*.load
IncludeOptional mods-enabled/*.conf
Include ports.conf
<Directory />
    Options FollowSymLinks
    AllowOverride All
    Require all denied
</Directory>
<Directory /usr/share>
    AllowOverride None
    Require all granted
</Directory>
<Directory /var/www/html>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>
<Directory /var/www/html/public>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>
AccessFileName .htaccess
<FilesMatch "^\.ht">
    Require all denied
</FilesMatch>
LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %O" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
IncludeOptional conf-enabled/*.conf
IncludeOptional sites-enabled/*.conf

000-default.conf:
<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html/public
    <Directory "/var/www/html/public">
             AllowOverride All
        </Directory>
    Alias /phpmyadmin "/usr/share/phpmyadmin/"
    <Directory "/usr/share/phpmyadmin/">
         Order allow,deny
         Allow from all
         Require all granted
    </Directory>
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

#81 Laravel 5.x » Не работают роуты » 30.04.2016 11:22:54

MadHatter
Ответов: 2

Здравствуйте. Недавно купил дешевый vps для тестов. Операционка ubuntu 14. Установил PHP 7, apache2, mysql5.6. Залил Laravel через composer. Но не работают роуты.
Сайт лежит в /var/www/html/
apache2.conf:
<Directory />
    Options FollowSymLinks
    AllowOverride All
    Require all denied
</Directory>

<Directory /usr/share>
    AllowOverride None
    Require all granted
</Directory>

<Directory /var/www/html>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

000-default.conf:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html
   
    <Directory "/var/www/html">
              AllowOverride All
       </Directory>
   
   
    Alias /phpmyadmin "/usr/share/phpmyadmin/"
    <Directory "/usr/share/phpmyadmin/">
         Order allow,deny
         Allow from all
         Require all granted
    </Directory>

        ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

# sudo a2enmod rewrite
Module rewrite already enabled

В чем может быть проблема?

#82 Re: Laravel 5.x » hQuery unable to create socket » 06.04.2016 19:08:36

Сложный вопрос. А где это можно посмотреть?

#83 Re: Laravel 5.x » hQuery unable to create socket » 06.04.2016 10:11:31

Но Duzun ведь как то смог получить ответ.

#84 Laravel 5.x » hQuery unable to create socket » 06.04.2016 09:39:05

MadHatter
Ответов: 5

Здравствуйте пытаюсь пропарсить страницу сайта sima-land.ru с помощью hQuery.

use hQuery;
$doc = hQuery::fromURL('sima-land()ru/');

получаю ошибку: unable to create socket "tls://www.sima-land()ru:443"

С других сайтов данные приходят. На сайте разработчика https://duzun.me/playground/hquery#sel= … land.ru%2F данные с данного сайта тоже приходят. В чем может быть проблема?

#85 Re: Laravel 5.x » Перестали работать ошибки валидации » 01.04.2016 20:43:01

Разобрался с проблемой. Если кому интересно, то - у меня версия Laravel 5.2.27. Необходимо переместить строку \Illuminate\Session\Middleware\StartSession::class, из группы web в группу middleware в файле Kernel.

#86 Laravel 5.x » Перестали работать ошибки валидации » 01.04.2016 10:20:57

MadHatter
Ответов: 5

Здравствуйте. Недавно установил чистый Laravel 5.2. Закинул туда свои файлы. И перестали работать все ошибки. И те которые возвращаю через return back()->with(), и те которые возвращает Request:
<?php

namespace App\Http\Requests;

use App\Http\Requests\Request;

class OrderForm extends Request
{

    public function authorize()
    {
        return true;
    }

     public function rules()
    {
        return [
           
            'name' => 'required|name|between:10,150',
            'phone' => 'required|phone|between:5,50',
            'adress' => 'required|adress|between:10,150',
           
        ];
    }
}
Работаю на хостинге с PHP 7. В чем может быть проблема?

#87 Laravel 5.x » CookieJar Не обновляет cookie » 20.03.2016 16:29:28

MadHatter
Ответов: 0

Здравствуйте. Пытаюсь обновить куку таким способом:
$cookieJar->queue($cookieJar->forever(MainData::getBasketName(), $basket));
return back();
Первый раз она устанавливается, но при добавлении она не обновляется. Пробовал сначала удалить, а потом установить - результат такой же. Хотя массив $basket приходит нужный. В чем может быть проблема?

#88 Re: Laravel 5.x » Транзакции » 14.03.2016 08:20:11

Решил проблему. Она оказалась в том, что таблицы были в MyIsam. Поставил в InnoDB и все стало работать.

#89 Re: Laravel 5.x » Транзакции » 14.03.2016 07:10:20

DB::beginTransaction();
try{
    $order = DB::table('orders')->insertGetId([
        'name' => $data['name'],
        'phone' => $data['phone'],
        'adress' => $data['adress'],
    ]);
    DB::table('goods')->insert([
    'order' => $order,
    'good' => $data['phone'],
    'quantity' => $data['phone'],
    ]);
}
catch(QueryException $e){
    DB::rollBack();
}
DB::commit();

Никакого эффекта.

#90 Re: Laravel 5.x » Regex Почему не работает валидация? » 14.03.2016 06:56:58

Я бычно пользуюсь таким способом: /^[а-яА-ЯA-Za-z0-9\- ,]+$/u

#91 Re: Laravel 5.x » Транзакции » 14.03.2016 06:52:12

DB::commit() пока нету, потому что я хочу для начала отменить транзакцию.
Если верить документации, то при использовании синтаксиса DB::transaction(function() {...}); вообще не нужно ни rollback, ни commit. Но ни так ни так не добился должного результата.
Пробовал и в камэлКэйсе и так, но результат один и тот же. И не появляется ошибка что метьод не найден.

#92 Laravel 5.x » Транзакции » 13.03.2016 18:06:53

MadHatter
Ответов: 5

Здравствуйте. Использую Laravel 5.2. Возникла проблема с транзакцией
protected function create(array $data, $basket){
    DB::transaction(function() use ($data, $basket){
        try{
            $order = Orders::create([
                'name' => $data['name'],
                'phone' => $data['phone'],
                'adress' => $data['adress'],
            ]);
            $basket->each(function($item, $key) use ($order){
                Goods::create([
                    'order' => $order->id,
                    'good' => $item->get('id'),
                    'quantity' => $item->get('quantity'),
                ]);
            });
        }
        catch(Exception $e){
            DB::rollback();
        }
    });
}
При добавлении в таблицу Goods я делаю ошибку и получаю QueryException. Но в таблицу Orders данные все равно добавляются. Что я делаю не так?

#93 Re: Laravel 5.x » Request и GET запрос » 27.02.2016 07:41:25

Ясно, спасибо больое, вы мне очень помогли)

#94 Re: Laravel 5.x » Request и GET запрос » 27.02.2016 03:31:52

duster пишет:

'required' - бессмысленно проверять, раз юзер сюда попал по маршруту - значит ID указан. Иначе бы не сработал маршрут smile

Точно) И на numeric тоже, ведь в роуте прописан where)
А каким образом в методе Authorize мне получить данную переменную, чтобы проверить на is_int()?

#95 Re: Laravel 5.x » Request и GET запрос » 26.02.2016 23:28:58

duster, сделал как вы говорили, с помощью make:request но передача методом гет все равно не работает.
public function rules()
    {
        return [
            'id' => 'required|numeric',
        ];
    }
отправляю так
<a href="{{ url('/admin/toBasket/'.$order['id']) }}">В корзину</a>
Возвращается ошибка что поле id обязательно для заполнения. Я так понимаю что это связано с тем, что для получаемой переменной не задан ключ id. Каким образом вообще валидироавать переменные полученные методом гет?

#96 Re: Laravel 5.x » Request и GET запрос » 26.02.2016 11:48:52

Route::get('/admin/toBasket/{id}', 'AdminController@toBasket')->where('id', '[0-9]+');
Да, передается как часть урла.

#97 Laravel 5.x » Request и GET запрос » 26.02.2016 10:50:15

MadHatter
Ответов: 9

Здравствуйте. Нуждаюсь в небольшом ликбезе. Пытаюсь методом GET передать в контроллер параметр, например id. В контроллере принимаю таким образом:
public function getId(Request $request){
     dd($request->id);//Выводится нужный id
     dd($request->all());//Выводится массив, но в нем нет id
}
Далее мне нужно передать $request в Validator. Почему метод all() не возвращает id? И как мне его отправить в Validator?

#99 Laravel 5.x » Несколько параметров в роутинге » 21.02.2016 20:28:19

MadHatter
Ответов: 2

Здравствуйте. У меня такой вопрос. Я по API получаю различные кактегории товаров и какая будет вложенность заранее не известно. То есть маршрут может быть примерно таким /category/subCategory1/subCategory2/subCategory3... И сколь будет подкатегорий неизвестно. Пытался создать такой роут -
Route::get('/{category}/{subCategory}/', 'SubCategoryController@index')->where('category', '[0-9a-z_-]+')->where('subCategory', '[0-9a-z_-/]+');
Но появляется ошибка -
ErrorException in UriValidator.php line 21: preg_match(): Compilation failed: range out of order in character class at offset 53
Как нужно правильно реализовать роут?

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