Laravel по-русски

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

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

#26 Re: Laravel 5.x » Https » 11.04.2018 12:22:38

sam

я сменил на .test  Или .loc  тоже понимает. (если не заработает, возможно нужно переустановить вагрант на более свежую версию. (дамп базы сделать не забудьте перед маневрами))
(выгрузка  mysqldump -u homestead -p названиебд | gzip > `date +outputfile.sql.%Y%m%d.%H%M%S.gz`)
(загрузка zcat outputfile.sql.20180319.104626.gz | mysql -u homestead -p названиебд)
secret

#28 Re: Laravel 5.x » Видео уроки на русском языке! » 06.04.2018 20:55:56

sam

Собственно не могу не поделиться smile
CRUD laravel Ajax
https://jmkleger.com/post/ajax-crud-for-laravel-5-4 (на 5.5 все пашет. убедился лично)
там же есть посмотреть Демо!!  + в шапке есть еще закладка Demos с полезностями.
- аякс загрузка изображения с проверкой "я не робот"
- Laravel WhatsApp

#29 Re: Laravel 5.x » Не работает симлинк на storage/app/public. Какие варианты? » 06.04.2018 19:58:58

sam

только код там какой-то кривоватый. (или это на серверах такие пути должны быть??)
у меня локально, если загружаем вот так:

Storage::put('images/folder/myfilename1.jpeg', file_get_contents($request->file('file')->getRealPath()));

то по урле

 http://corporate.loc/storage/myfilename1.jpeg 

из приведённого примера, у меня вот так заработало:

 $path = storage_path('app/images/folder/' . $filename); 

#30 Re: Laravel 5.x » Laravel passport регистрация и авторизация пользователей » 06.04.2018 17:58:36

sam
    protected $middleware = [
        ...
        \Illuminate\Session\Middleware\StartSession::class, // из группы web
        \Illuminate\View\Middleware\ShareErrorsFromSession::class, // из $middlewareGroups
    ];

не?)

#31 Re: Laravel 5.x » Файловое хранилище Storage Помогите разобраться » 06.04.2018 15:46:42

sam

приведенный код пробовал - ничего не происходит. ошибок нет и файл в папке не появился.
П.С. мля.. еле заметил. все сохраняется в папку corporate.loc/storage/app/images .......
а я в паблике ищу)
да.. и перемещение файлов можно делать мувам https://laravel.ru/forum/viewtopic.php?id=3412

#32 Laravel 5.x » Файловое хранилище Storage Помогите разобраться » 06.04.2018 15:23:58

sam
Ответов: 2

Помогите разобраться, уже бомбить начинает. (я еще ток учусь)

Сам, ручками, загружаю файлы сюда:

public/images/folder/qqq

Хочу загружать изображение на Локальный сервер (vagrant) с помощью Storage в эту же директорию.
(знаю документации в сети полно, но от них яснее не стало. форум тоже гуглил)

Опишу по порядку че делал:
1) зашел в папку с проектом. прогнал команду

php artisan storage:link

-- внутри папки public появился линк storage
2) в контроллере подрубаю

use Illuminate\Support\Facades\Storage;

// use File;
3) в методе проверяю $request

dd($request->file('file'));
UploadedFile {#888 ▼
  -test: false
  -originalName: "Снимок экрана от 2018-03-13 10-10-14.png"
  -mimeType: "image/png"
  -size: 160321
  -error: 0
  #hashName: null
  path: "/tmp"
  filename: "phpqecq7O"
  basename: "phpqecq7O"
  pathname: "/tmp/phpqecq7O"
  extension: ""
  realPath: "/tmp/phpqecq7O"
  aTime: 2018-04-06 11:53:14
  mTime: 2018-04-06 11:53:14
  cTime: 2018-04-06 11:53:14
  inode: 2235195
  size: 160321
  perms: 0100600
  owner: 1000
  group: 1000
  type: "file"
  writable: true
  readable: true
  executable: false
  file: true
  dir: false
  link: false
}

4) настройки конфига не трогал  (config/filesystems.php)

'default' => env('FILESYSTEM_DRIVER', 'local'),
    'disks' => [
        'local' => [
            'driver' => 'local',
            'root' => storage_path('app'),
        ],
        'public' => [
            'driver' => 'local',
            'root' => storage_path('app/public'),
            'url' => env('APP_URL').'/storage',
            'visibility' => 'public',
        ],
        's3' => [
            'driver' => 's3',
            'key' => env('AWS_KEY'),
            'secret' => env('AWS_SECRET'),
            'region' => env('AWS_REGION'),
            'bucket' => env('AWS_BUCKET'),
        ],
    ],

________________________
если делать

 Storage::put('images/folder/qqq', file_get_contents($request->file('file')->getRealPath())); 

, то ругается

"file_put_contents(/home/vagrant/Code/corporate.loc/storage/app/images/folder/qqq): failed to open stream: Is a directory"

напомню. мой путь вот такой:

public/images/folder/qqq

---------------------
и из документации пример не понятен: https://laravel.ru/docs/v5/filesystem

Storage::disk('local')->put('file.txt', 'Contents');

в первый параметр, так понимаю, подаем файл $request->file('file'). что такое 'Contents' вторым параметром??
---------------------

#33 Re: Laravel 5.x » Как заставить работать валидацию image в FormRequest? » 02.04.2018 15:56:43

sam

У меня работает валидация изображения:
use Illuminate\Support\Facades\Validator;

{{ Form::file('image', ['id'=>'smile', 'min'=> 1, 'max'=> 3, 'name'=>'file']) }}

в методе:

        if($request->isMethod('post')) {
            $rules = array(
                'file' => 'required|mimes:jpeg,jpg,png,bmp | max:1000', // dimensions:min_width=200,min_height=200
                'smile' => 'unique:smiles|required|max:12|min:2',
                'comment' => 'bail|required|max:200|min:2',
            );

            $validator = Validator::make($request->all(), $rules);
            if ($validator->fails()) {
                return Redirect::back()
                    ->withErrors($validator)
                    ->withInput();
            }
иначе ок
        @if (isset($errors) && count($errors) > 0)
            <div class="alert alert-danger" align="left">
                <button type="button" class="close" data-dismiss="alert">x</button>
                <div>
                    <ul>
                        @foreach ($errors->all() as $error)
                            <li>{!! $error !!}</li>
                        @endforeach
                    </ul>
                </div>
            </div>
        @endif

п.с. можно допихать image в rules но и так работает
private $test = false; // правки не понадобились

#34 Re: Laravel 5.x » Как заставить работать валидацию image в FormRequest? » 02.04.2018 12:00:36

sam

я тоже плохо понимаю, но попробуйте повторить по комментам с этой урлы.
по пути  vendor/laravel/framework/src/Illuminate/Http/UploadedFile.php
открыв его, находим
use Symfony\Component\HttpFoundation\File\UploadedFile as SymfonyUploadedFile;
на UploadedFile жмякаем ctrl+b
и видем

class UploadedFile extends File
{
    private $test = false;
    private $originalName;
    private $mimeType;
    private $size;
    private $error;
бла бла

попробуйте сменить     private $test = false; на true

#35 Re: Laravel 5.x » Как заставить работать валидацию image в FormRequest? » 30.03.2018 16:27:42

sam

хз, я сам в методе загрузки изображения, фигачу валидацию.

        $imageTypeArray = array(0 => 'UNKNOWN', 1 => 'GIF', 2 => 'JPEG', 3 => 'PNG', 4 => 'BMP');
        $imageinfo = getimagesize($_FILES['file']['tmp_name'][0]);
        if (isset($imageinfo['mime'])) {
            foreach ($imageTypeArray as $key => $val) {
                if ($imageinfo[2] == $key) {
                    $succs_file = true;
                }
            }
        }
  if (isset($succs_file)) { бла бла бла
The End =)

так же можно подавать целую пачку файлов и проверять каждый на изображение и брать только изображение.
было бы интересно услышать правильное решение smile

#36 Re: Laravel 5.x » Стандартная форма регистрации + письмо на почту » 30.03.2018 11:32:16

sam

php artisan route:list
https://www.youtube.com/watch?v=zu-ZniG … e=youtu.be
конфиг к видео:
MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME= (ключ копируете на сайте)
MAIL_PASSWORD= (ключ копируете на сайте)
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS=test@yandex.ru
MAIL_FROM_NAME="test app"
https://laravel.ru/forum/viewtopic.php?id=3358

#38 Re: Laravel 5.x » Помогите как правельно создать приложение » 28.03.2018 12:39:01

sam

ой ооой много хочу и ничего не знаю. посмотрите тут https://www.youtube.com/watch?v=nWo5vHk … o2ldxWWtJR чел азы рассказывает и 2 проекта делает. вам второй. там и категории и разделы и правильное построение архитектуры с миграциями + CRUD

#39 Re: Laravel 5.x » Загрузка Laravel на хостинг (HTTP ERROR 500) » 26.03.2018 15:18:47

sam

на счет опен сервера веткой выше человеку писал https://laravel.ru/forum/viewtopic.php?pid=16551#p16551
может кто еще что подскажет..

#41 Re: Laravel 5.x » Не могу подключить скрипт Laravel на OpenServer » 26.03.2018 13:37:40

sam

делайте по второй ссылке. я по его урокам учился от 5.2. версии, притом что уже вышла 5.5. они зря версию указывают в уроках, народ гуглит то, чего еще нет в ютубе) а 5.2 на 90% актуальна
а вообще там все просто. https://laravel.com/docs/5.6/homestead  качаете все что пишут, ставите, вбиваете команду там же приведенную и т.д.
вот тут его сотка уроков
https://laravel.ru/forum/viewtopic.php?pid=13862#p13862
п.с. если мне не изменяет память, с опен сервером у меня начались проблемы, т.к. там чето с версией пхп у меня нелады были
кстати, если понадобится указать свою версию пхп, то тоже делается просто. в файле homestead.yaml дописывается под проектом
    - map: project.test
      to: /home/vagrant/Code/project/overview/public
      php: "5.6"

#42 Re: Laravel 5.x » Загрузка Laravel на хостинг (HTTP ERROR 500) » 26.03.2018 13:19:13

sam

права доступа к storage и bootstrap/cache установил 777  --- это не безопасно.. у вас чето с пользователем и группой напутано или не доступно... их настраивайте. а права должны быть типа  sudo chmod -R 2775 *
короче 775, а не 777. я тоже на это напарывался. только у меня линукс с нгинксом. к сисадмину обратитесь за помощью

#43 Re: Laravel 5.x » Имеет ли смысл выносить SQL-запросы из контроллера в модель? » 26.03.2018 13:14:31

sam

эм, я нубас, но насколько мне видится, в идеале, в контроллере должны быть только обращения к методам. а сами методы, с их бла бла кодом, должны быть в моделе smile

#44 Re: Laravel 5.x » Не могу подключить скрипт Laravel на OpenServer » 26.03.2018 13:05:58

sam

а вообще с опен сервером у вас будут проблемы.. переходите на Laravel Homestead. там все есть.. с настройкой помогу (и не я один)

#45 Re: Laravel 5.x » Не могу подключить скрипт Laravel на OpenServer » 26.03.2018 13:04:21

sam

файл хоста редактировали?
C:\Windows\System32\drivers\etc\hosts
192.168.10.10 bebem.loc

#48 Re: Laravel 5.x » Нету папки routes » 14.03.2018 11:07:28

sam

Был тут один человек, установил себе лару почти 5.6 когда доступна только 5.5 и удивлялся откуда у него реклама и чегото не хватает.. открывайте оф документацию и следуйте инструкции. все есть

#49 Re: Laravel 5.x » не могу найти метод, вызываемый роутом "/password/email" » 02.03.2018 19:05:40

sam

у меня както так

Auth::routes();
Route::get('login', 'Auth\LoginController@showLoginForm')->name('login');
Route::post('login', 'Auth\LoginController@login');

Route::get('register', 'Auth\RegisterController@showRegistrationForm')->name('register');
Route::post('register', 'Auth\RegisterController@register');

Route::get('password/reset', 'Auth\ForgotPasswordController@showLinkRequestForm')->name('password_reset');
Route::post('password/reset', 'Auth\ResetPasswordController@reset')->name('password_reset');

Route::get('logout', 'Auth\LoginController@logout')->name('logout');

Route::post('password/email', 'Auth\ForgotPasswordController@sendResetLinkEmail')->name('password.email');
Route::get('password/reset', 'Auth\ForgotPasswordController@showLinkRequestForm')->name('password.request');
Route::post('password/reset', 'Auth\ResetPasswordController@reset')->name('password.reset');
Route::get('password/reset/{token}', 'Auth\ResetPasswordController@showResetForm')->name('showResetForm');

п.с. а вообще в консоле вбей
php artisan route:list

#50 Re: Laravel 5.x » Многие ко многим через... 2 » 27.02.2018 15:25:10

sam

вручную пропиши че откуда по чем берем

    public function roles()
    {
        return $this->belongsToMany('App\Http\Model\Roles', 'roles_users', 'user_id', 'role_id');
    }

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