Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
я сменил на .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
не знаю, может чемто будет полезно
http://qaru.site/questions/712461/larav … -parameter
Собственно не могу не поделиться
CRUD laravel Ajax
https://jmkleger.com/post/ajax-crud-for-laravel-5-4 (на 5.5 все пашет. убедился лично)
там же есть посмотреть Демо!! + в шапке есть еще закладка Demos с полезностями.
- аякс загрузка изображения с проверкой "я не робот"
- Laravel WhatsApp
только код там какой-то кривоватый. (или это на серверах такие пути должны быть??)
у меня локально, если загружаем вот так:
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);
protected $middleware = [
...
\Illuminate\Session\Middleware\StartSession::class, // из группы web
\Illuminate\View\Middleware\ShareErrorsFromSession::class, // из $middlewareGroups
];
не?)
приведенный код пробовал - ничего не происходит. ошибок нет и файл в папке не появился.
П.С. мля.. еле заметил. все сохраняется в папку corporate.loc/storage/app/images .......
а я в паблике ищу)
да.. и перемещение файлов можно делать мувам https://laravel.ru/forum/viewtopic.php?id=3412
Помогите разобраться, уже бомбить начинает. (я еще ток учусь)
Сам, ручками, загружаю файлы сюда:
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' вторым параметром??
---------------------
У меня работает валидация изображения:
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; // правки не понадобились
я тоже плохо понимаю, но попробуйте повторить по комментам с этой урлы.
по пути 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
хз, я сам в методе загрузки изображения, фигачу валидацию.
$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 =)
так же можно подавать целую пачку файлов и проверять каждый на изображение и брать только изображение.
было бы интересно услышать правильное решение
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
на форуме есть поиск.
https://laravel.ru/forum/viewtopic.php?pid=15450#p15450
ой ооой много хочу и ничего не знаю. посмотрите тут https://www.youtube.com/watch?v=nWo5vHk … o2ldxWWtJR чел азы рассказывает и 2 проекта делает. вам второй. там и категории и разделы и правильное построение архитектуры с миграциями + CRUD
на счет опен сервера веткой выше человеку писал https://laravel.ru/forum/viewtopic.php?pid=16551#p16551
может кто еще что подскажет..
для убунты еще проще ставится) https://vaden-pro.ru/blog/laravel/ustan … -homestead
делайте по второй ссылке. я по его урокам учился от 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"
права доступа к storage и bootstrap/cache установил 777 --- это не безопасно.. у вас чето с пользователем и группой напутано или не доступно... их настраивайте. а права должны быть типа sudo chmod -R 2775 *
короче 775, а не 777. я тоже на это напарывался. только у меня линукс с нгинксом. к сисадмину обратитесь за помощью
эм, я нубас, но насколько мне видится, в идеале, в контроллере должны быть только обращения к методам. а сами методы, с их бла бла кодом, должны быть в моделе
а вообще с опен сервером у вас будут проблемы.. переходите на Laravel Homestead. там все есть.. с настройкой помогу (и не я один)
файл хоста редактировали?
C:\Windows\System32\drivers\etc\hosts
192.168.10.10 bebem.loc
https://laravel.ru/forum/viewtopic.php?pid=13862#p13862 в сотке видео уроков точно это есть. сам делал на 5.5
искали папку, нашли файл. норм)
Был тут один человек, установил себе лару почти 5.6 когда доступна только 5.5 и удивлялся откуда у него реклама и чегото не хватает.. открывайте оф документацию и следуйте инструкции. все есть
у меня както так
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
вручную пропиши че откуда по чем берем
public function roles()
{
return $this->belongsToMany('App\Http\Model\Roles', 'roles_users', 'user_id', 'role_id');
}