Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Когда поставил в проэкте laravel редактор Summernote то там при сохранеии возникает ошибка.
SQLSTATE[22001]: String data, right truncated: 1406 Data too long for column 'content' at row 1 (SQL: update `posts` set `content` = <h3>DIGITAL IPSUM<img
Может кто подскажет что делать?
Вообще у таких редакторов есть функционал чтобы сохранять фото?
Не в сети
А какой тип у столбца content?
Не в сети
Вот копирую из миграций
$table->text('content')->nullable();
Мне кажется длинна столбца подходит.
Но там нету функционала, который бы сохранял фото в какую-то папку, а дальше генерировал
<img src="путь-к-сохраненному-изображению">
А как вы считаете?
Не в сети
p.s. нашел что-то похожее на решение этой проблеммы в интернете, но пока не тестил.
Вставлю тут код, может кому пригодится.
Файл из view:
@section('content')
{{Form::open('PostController@edit')}}
<input type="hidden" name="post_id" value="1">
<legend>Message</legend>
<textarea id="editor" name="message"></textarea>
<button type="submit">Save</button>
{{Form::close()}}
@stop
@section('scripts')
$('#editor').summernote();
@stop
Файл контроллера
<?php
/**
* This exemple shows how to parse base64 encoded images (submitted using Summernote), save them locally
* and replace the 'src' attribute in the submited HTML content
*
**/
use Intervention\Image\ImageManagerStatic as Image;
class PostController {
public function edit(){
$post = Post::findOrFail(Input::get('post_id')); // Post object exemple
$message = Input::get('message'); // Summernote input field
$dom = new DomDocument();
$dom->loadHtml($message, LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);
$images = $dom->getElementsByTagName('img');
// foreach <img> in the submited message
foreach($images as $img){
$src = $img->getAttribute('src');
// if the img source is 'data-url'
if(preg_match('/data:image/', $src)){
// get the mimetype
preg_match('/data:image\/(?<mime>.*?)\;/', $src, $groups);
$mimetype = $groups['mime'];
// Generating a random filename
$filename = uniqid();
$filepath = "/images/$filename.$mimetype";
// @see [url]http://image.intervention.io/api/[/url]
$image = Image::make($src)
// resize if required
/* ->resize(300, 200) */
->encode($mimetype, 100) // encode file to the specified mimetype
->save(public_path($filepath));
$new_src = asset($filepath);
$img->removeAttribute('src');
$img->setAttribute('src', $new_src);
} // <!--endif
} // <!--endforeach
$post->message = $dom->saveHTML();
$post->save();
Session::flash('message','Post updated!');
return Redirect::back();
}
}
Не в сети
Страницы 1