
Юрий
13.08.2018
05:59:00

Aleksandr
13.08.2018
06:00:17

Timur
13.08.2018
06:14:34
как в одном канале несколько ивентов слушать?

Google

Timur
13.08.2018
06:15:02
чтобы не дублировать вот так код

Станислав
13.08.2018
06:25:12
Как добавлять в связующую таблицу данные правильно?)

Zakhariy ??
13.08.2018
06:25:33

Vladimir
13.08.2018
06:26:09
Уже решил обратным циклом

Станислав
13.08.2018
06:26:23
У меня связь многие ко многим, продуктов к характеристикам , и связующая таблица ProductCharacteristic


Obazure
13.08.2018
06:46:52
Ребят, сорри.. можно я тут всю портянку вылью
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Http\UploadedFile;
use Pion\Laravel\ChunkUpload\Exceptions\UploadMissingFileException;
use Pion\Laravel\ChunkUpload\Handler\AbstractHandler;
use Pion\Laravel\ChunkUpload\Handler\HandlerFactory;
use Pion\Laravel\ChunkUpload\Receiver\FileReceiver;
class UploadController extends Controller
{
/**
* Handles the file upload
*
* @param Request $request
*
* @return \Illuminate\Http\JsonResponse
*
* @throws UploadMissingFileException
*/
public function upload(Request $request) {
// create the file receiver
$receiver = new FileReceiver("file", $request, HandlerFactory::classFromRequest($request));
// check if the upload is success
if ($receiver->isUploaded()) {
// receive the file
$save = $receiver->receive();
// check if the upload has finished (in chunk mode it will send smaller files)
if ($save->isFinished()) {
// save the file and return any response you need
return $this->saveFile($save->getFile());
} else {
// we are in chunk mode, lets send the current progress
/** @var AbstractHandler $handler */
$handler = $save->handler();
return response()->json([
"done" => $handler->getPercentageDone(),
]);
}
} else {
throw new UploadMissingFileException();
}
}
/**
* Saves the file
*
* @param UploadedFile $file
*
* @return \Illuminate\Http\JsonResponse
*/
protected function saveFile(UploadedFile $file)
{
$fileName = $this->createFilename($file);
// Group files by mime type
$mime = str_replace('/', '-', $file->getMimeType());
// Group files by the date (week
// $dateFolder = date("Y-m-W"); /*ЗАКРЫЛ*/
// Build the file path
//$filePath = "upload/{$mime}/{$dateFolder}/";/*ЗАКРЫЛ*/
$filePath = "upload/";
$finalPath = storage_path("app/".$filePath);
// move the file name
$file->move($finalPath, $fileName);
return response()->json([
'path' => $filePath,
'name' => $fileName,
'mime_type' => $mime
]);
}
/**
* Create unique filename for uploaded file
* @param UploadedFile $file
* @return string
*/
protected function createFilename(UploadedFile $file)
{
$extension = $file->getClientOriginalExtension();
$filename = str_replace(".".$extension, "", $file->getClientOriginalName()); // Filename without extension
$filename = $this->translit($filename);
// Add timestamp hash to name of the file
$filename .= "_" . md5(time()) . "." . $extension;
return $filename;
}
function translit($s) {
$s = mb_strimwidth($s,0,20);
$s = (string) $s; // преобразуем в строковое значение
$s = strip_tags($s); // убираем HTML-теги
$s = str_replace(array("\n", "\r"), " ", $s); // убираем перевод каретки
$s = preg_replace("/\s+/", ' ', $s); // удаляем повторяющие пробелы
$s = trim($s); // убираем пробелы в начале и конце строки
$s = function_exists('mb_strtolower') ? mb_strtolower($s) : strtolower($s); // переводим строку в нижний регистр (иногда надо задать локаль)
$s = strtr($s, array('а'=>'a','б'=>'b','в'=>'v','г'=>'g','д'=>'d','е'=>'e','ё'=>'e','ж'=>'j','з'=>'z','и'=>'i','й'=>'y','к'=>'k','л'=>'l','м'=>'m','н'=>'n','о'=>'o','п'=>'p','р'=>'r','с'=>'s','т'=>'t','у'=>'u','ф'=>'f','х'=>'h','ц'=>'c','ч'=>'ch','ш'=>'sh','щ'=>'shch','ы'=>'y','э'=>'e','ю'=>'yu','я'=>'ya','ъ'=>'','ь'=>''));
$s = preg_replace("/[^0-9a-z-_ ]/i", "", $s); // очищаем строку от недопустимых символов
$s = str_replace(" ", "_", $s); // заменяем пробелы знаком минус
return $s; // возвращаем результат
}
}
Route::post('upload', 'DependencyUploadController@uploadFile');
Route::post('upload-advanced', 'UploadController@upload');
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Http\UploadedFile;
use Pion\Laravel\ChunkUpload\Exceptions\UploadMissingFileException;
use Pion\Laravel\ChunkUpload\Handler\AbstractHandler;
use Pion\Laravel\ChunkUpload\Handler\HandlerFactory;
use Pion\Laravel\ChunkUpload\Receiver\FileReceiver;
class DependencyUploadController extends UploadController
{
/**
* Handles the file upload
*
* @param FileReceiver $receiver
*
* @return \Illuminate\Http\JsonResponse
*
* @throws UploadMissingFileException
*
*/
public function uploadFile(FileReceiver $receiver) {
// check if the upload is success
if ($receiver->isUploaded()) {
// receive the file
$save = $receiver->receive();
// check if the upload has finished (in chunk mode it will send smaller files)
if ($save->isFinished()) {
// save the file and return any response you need
return $this->saveFile($save->getFile());
} else {
// we are in chunk mode, lets send the current progress
/** @var AbstractHandler $handler */
$handler = $save->handler();
return response()->json([
"done" => $handler->getPercentageDone(),
]);
}
} else {
throw new UploadMissingFileException();
}
}
}
вкратце. у меня есть upload controller и зависимый от него dependency upload controller
суть кода: отобразить форму для загрузки видео файла 1Гб-4Гб, и загрузить его разбив на чанки по 20-30 мб (где то можно было регулировать)
вот create video view

Google


Obazure
13.08.2018
06:54:09
@extends('layouts.app')
@section('content')
<div class="row">
<div class="col s12 ">
<div class="col-content">
@if(Session::has('message'))
<div class="card white">
<div class="card-content black-text">
<span class="card-title">{{ Session::get('message') }}</span>
</div>
</div>
@endif
<div class="card white">
<div class="card-content black-text">
<h5>
Загрузка нового видео:
</h5>
@if (count($errors) > 0)
<div class="col s12">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
<form id="create-video-form"
onsubmit="return submit_on_click()"
action="{{route('video.store')}}"
method="post" enctype="multipart/form-data">
{{ csrf_field() }}
<div class="input-field col s8">
@if ($errors->has('title'))
<span><strong>{{ $errors->first('title') }}</strong></span>
@endif
<input id="video-title"
type="text"
name="title"
class="validate {{ $errors->has('title') ? 'invalid' : '' }}"
value="{{ old('title') }}"
oninput="make_slug()"
required>
<label for="video-title">(!) Название видео</label>
</div>
<div class="input-field col s4">
@if ($errors->has('slug'))
<span><strong>{{ $errors->first('slug') }}</strong></span>
@endif
<input id="video-slug"
type="text"
name="slug"
class="validate {{ $errors->has('slug') ? 'invalid' : '' }}"
value="{{ old('slug') }}"
placeholder="(!) Ссылка"
disabled
required>
{{--<label for="video-slug">Ссылка</label>--}}
</div>
<div class="col s12">
@if ($errors->has('published'))
<span><strong>{{ $errors->first('published') }}</strong></span>
@endif
<input id="published"
type="checkbox"
name="published"
>
<label for="published">Опубликовано</label>
</div>
<div class="input-field col s12">
@if ($errors->has('description'))
<span><strong>{{ $errors->first('description') }}</strong></span>
@endif
<textarea id="video-description"
name="description"
required
class="validate {{ $errors->has('description') ? 'invalid' : '' }}" >
{{ old('description') }}
</textarea>
<label for="video-description">(!) Описание</label>
</div>
<div class=" input-field col s12">
@if ($errors->has('videofile'))
<span><strong>{{ $errors->first('videofile') }}</strong></span>
@endif
<input type="hidden" name="videofile" id="videofile" value="null" required>
<div class="text-center">
<input id="fileupload" type="file" name="file" data-url="{{ url('upload') }}" style="display: inline;">
<ul id="file-upload-list" class="list-unstyled">
</ul>
</div>
</div>
<div id="total-status" class="col s12"></div>
<div class="input-field">
<input id="submit" type="submit"
class="waves-effect waves-light btn indigo darken-1 right sbtn"
value="Сохранить">
</div>
</form>
<p>(!) - Важно для заполнения!</p>
</div>
</div>
</div>
</div>
</div>
<script>
CKEDITOR.replace('video-description');
var slug_lock = false;
function submit_on_click(){
if($('input[name="videofile"]').val()=='null') {
$('#total-status').html('Вы забыли загрузить файл.');
return false;
}
$('#video-slug').prop("disabled", false); // Element(s) are now enabled.
return true;
}
$(document).ready(make_slug());
function make_slug(){
if (!slug_lock){
var slug = getSlug($('#video-title').val());
if (slug!='') {
var xhr = new XMLHttpRequest();
xhr.open('GET', '{{route('check.slug')}}?q=' + slug, false);
xhr.send();
if (xhr.status != 200) {
var now = new Date();
var dateTime = ""+now.getFullYear()+(now.getMonth()+1)+now.getDate()+now.getHours()+now.getMinutes()+now.getSeconds();
slug=slug+dateTime;
} else {
slug = xhr.responseText;
}
}
document.getElementById('video-slug').setAttribute('value',slug);
}
}
</script>
<link rel="stylesheet"
href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/default.min.css">
<script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/highlight.min.js"></script>
{{--<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>--}}
<script src="{{ asset('assets/vendor/blueimp-file-upload/js/vendor/jquery.ui.widget.js') }}"></script>
<script src="{{ asset('assets/vendor/blueimp-file-upload/js/jquery.iframe-transport.js') }}"></script>
<script src="{{ asset('assets/vendor/blueimp-file-upload/js/jquery.fileupload.js') }}"></script>
<script src="{{ asset('assets/js/file-uploader.js') }}"></script>
<script>hljs.initHighlightingOnLoad();</script>
@endsection
@section('script')
<script type="text/javascript" src="{{ asset('assets/ckeditor/ckeditor.js') }}"></script>
<script type="text/javascript" src="{{ asset('assets/js/speakingurl.min.js') }}"></script>
{{--<link rel="stylesheet" href="{{ asset('assets/css/app.css')}}"/>--}}
@endsection


Maxim
13.08.2018
06:54:31
подскажите как получить распечатку sql-запроса при исполнении метода fill() ?

Artur
13.08.2018
06:55:48
Почоны, хапнул горюшка
Делал кто для spa в отдельном ремо oAuth авторизацию?

Nikita
13.08.2018
06:56:11
Кто-то серьезно будет читать эти портянки кода в телеграме?) Без подсветки синтаксиса, кривыми переносами и т.д.)

Obazure
13.08.2018
06:56:44

Artur
13.08.2018
06:56:50
По всему социети размазаны прямые общения с реквестом теперь феймбуку не нравится на колбэк перепроверке релирект бесит прям
Провайдеры в приватах
Ощущений полные штаны

Nick
13.08.2018
06:57:54
Привет всем. Можете помочь. Как отправить email, используя mailable с полем from в таком виде example.com@mailgun.org on behalf of Example test@example.com. Мне нужно поле on behalf of

Nikita
13.08.2018
06:58:03

Maxim
13.08.2018
06:59:12

Nikita
13.08.2018
06:59:25

Artur
13.08.2018
07:00:47

Maxim
13.08.2018
07:00:48

Artur
13.08.2018
07:01:19
Save тоже не простой

Maxim
13.08.2018
07:01:24
После трехмесячного перерыва сел снова за Laravel)

Artur
13.08.2018
07:01:27
Там есть проверка с original

Nikita
13.08.2018
07:01:47

Artur
13.08.2018
07:02:02

Google

Artur
13.08.2018
07:04:36

Maxim
13.08.2018
07:04:48

Artur
13.08.2018
07:04:57
А как же микросервисы как же spa как де это все...
?

Nikita
13.08.2018
07:05:35
Та никто не понял что ты спросил мне кажется))

Миша
13.08.2018
07:05:43
Чуваки помогите, меня тут стерва замучала. Я про доктрину. Как в доктрине делать аналог скоупов из Лары?
дублирование кода меня не прикалывает в репозиториях
я думал делать приватные функции, которые модифицируют QueryBuilder. Но гребанные алиасы, не позволяют это норм провернуть(
не уверен что это прям по Ларе, но тут тоже спрошу

Nick
13.08.2018
07:06:01

Artur
13.08.2018
07:06:34
Общение пр json api

Миша
13.08.2018
07:08:12

Сергей
13.08.2018
07:33:10
Парни, привет всем.
Как редиректнуть все url с index.php на тот же url, но без index.php?
Может вопрос и не laravel, но всё же, что-то не выходит)

Vladislav
13.08.2018
07:35:39

Саша
13.08.2018
07:36:29
Это в Sleeping Owl?
Если в ней, то это у них незакрытый баг

Andrew
13.08.2018
07:37:02
скорее всего ты угазал метод гет а надо было пост или делет

Саша
13.08.2018
07:37:16
Там не генерируется <form></form> вокруг кнопки

Vladislav
13.08.2018
07:37:56

Google

Саша
13.08.2018
07:38:57

Nikita
13.08.2018
07:39:43
или отправляешь get запрос вместо post, или в роутинге стоит get вместо post

DDiimmkkaass
13.08.2018
07:43:39
там же ясно пишет, что тип запроса не тот

Artur
13.08.2018
07:51:09

Admin
ERROR: S client not available

Миша
13.08.2018
07:52:59

Artur
13.08.2018
07:53:29
Я уже пряти сделал
Просто сталкиваюсь со все новыми трудностями вот и думаю мож кто уже навелосипедил

Станислав
13.08.2018
08:05:26
Что можно сделать если у меня есть связующая таблица, и в ней есть еще одно поле которое нужно заполнять рандомно..
$product->characteristic()->attach($characteristic);
Можно сюда параметр как то добавить?)

Nikita
13.08.2018
08:07:08
https://laravel.com/docs/5.6/eloquent-relationships#many-to-many
Retrieving Intermediate Table Columns

Владислав
13.08.2018
08:07:15

Станислав
13.08.2018
08:09:13

Андрей
13.08.2018
08:25:13

mr
13.08.2018
08:33:39
как сдедать рефреш только одной миграции ?

Nikita
13.08.2018
08:34:43

mr
13.08.2018
08:35:23

Nikita
13.08.2018
08:36:14
если у тебя проект уже на проде то делай новую миграцию в которой вноси изменения в структуру таблицы

Google

mr
13.08.2018
08:36:16
только вчела лару открыл)

Alex
13.08.2018
08:36:18

mr
13.08.2018
08:37:18

Yura
13.08.2018
08:37:35
Проверь неймспейс

Андрей
13.08.2018
08:37:45
Дамп автолоад, проверить неймспейсы
Нужно TaskController
Пеши правильна!

Nikita
13.08.2018
08:40:33

Alex
13.08.2018
09:00:30
Дамп автолоад, проверить неймспейсы
да все нормально с неймспейсами. единственное в чем я сомневаюсь, я иду по русской документации для лары 5.3 а у меня 5.6 и в роутах у меня обращение
Route::delete('/task/{task}', 'TaskController@destroy');
и мне кажется в этом месте он автоматом пытается искать App\Http\Controllers\Task

Андрей
13.08.2018
09:03:26

Alex
13.08.2018
09:03:40
со всеми

Андрей
13.08.2018
09:04:38
Route::delete('/task/{task}', 'App\Http\Controllers\TaskController@destroy');
попробуй так
хотя должно и так как у тебя сработать

Aleksandr
13.08.2018
09:10:51

Nikita
13.08.2018
09:11:28
На вп можно в целом сделать всё что угодно ?

Андрей
13.08.2018
09:11:34