0

Intervention Image を使用して画像のサイズを変更しようとしています。その部分が機能しました。ここで、画像を 10 分間キャッシュしたいのですが、画像を含む新しい記事をアップロードすると、次のスタック トレースが表示されます。

ArticlesController.php 行 150 の ErrorException: /home/vagrant/Sites/vision/vendor/intervention/image/src で呼び出された App\Http\Controllers\ArticlesController::App\Http\Controllers{closure}() の引数 2 がありません/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);
}

心配しないでください。両方のステートメントを同時に使用しているわけではありません。両方で私がしていることを示すだけで、誰かが私を正しい方向に導き、私が間違っていることを教えてくれることを願っています。

4

1 に答える 1

1

問題は閉鎖機能にあるようです。キャッシュ オブジェクトのドキュメントによると、 1 つの引数のみをクロージャに渡します。あなたは3つの引数を求めています。

function($image, $directory, $path)

したがって、「クロージャの引数 2 がありません」というエラーが発生します。渡された 1 つの引数をサポートするには、クロージャを変更する必要があります。

于 2015-10-27T04:28:30.750 に答える