2015-10-27 2 views
0

Пытается использовать изображение вмешательства, чтобы изменить размер изображений. Получил эту часть работы. Теперь я хочу, чтобы кэшировать изображения в течение 10 минут, но я получаю эту трассировку стека, когда я загрузить новую статью с изображением:Laravel 5: изображение вмешательства, imagecache. Отсутствует аргумент 2 ошибка

ErrorException в ArticlesController.php строке 150: Отсутствует аргумент 2 для App \ Http \ Controllers \ ArticlesController :: App \ Http \ Controllers {clos}(), , вызываемые в /home/vagrant/Sites/vision/intervention/image/src/Intervention/Image/ImageManager.php в строке 85 и определяется

Это то, где происходит магия, в ArticlesController.php:

private function createArticle(ArticleRequest $request) 
{ 
    $article = Auth::user()->articles()->create($request->all()); 

    $this->syncTags($article, $request->input('tag_list')); 

    $image = $request->file('image'); 
    $directory = 'img/articles/'; 
    $path = $image->getClientOriginalName(); 
    $image->move($directory, $path); 

    Image::create([ 
     'path' => $path, 
     'article_id' => $article->id 
    ]); 

    // This one resizes the image successfully. 
    ImgResizer::make($directory . $path)->fit(600, 360)->save($directory . $path); 

    // This one is supposed to resize and cache the image, but spits the error above. 
    ImgResizer::cache(function($image, $directory, $path) { 
     $image->make($directory . $path)->fit(600, 360)->save($directory . $path); 
    }, 10); 
} 

Не волнуйтесь, я не использую оба утверждения одновременно. Просто показывая, что я делаю в обоих, и, надеюсь, кто-то может привести меня в правильном направлении и показать мне, что я делаю неправильно, потому что я этого не вижу.

+0

Какая линия составляет 150? – Chris

+0

150 - второй ImgResizer – Lansana

+0

пытался найти документацию, но класс 'ImgResizer' не существует из того, что я могу сказать ... – Chris

ответ

1

Проблема, похоже, связана с функцией закрытия. Согласно docs на объекте кэша, он пропускает только 1 аргумент для закрытия. Вы запрашиваете 3 аргумента.

function($image, $directory, $path) 

Следовательно, "отсутствует аргумент 2 ... для закрытия" ошибки. Вам нужно будет изменить свое закрытие, чтобы поддержать переданный один аргумент.

+0

А, я вижу сейчас .. спасибо! – Lansana

Смежные вопросы