показать статью первое изображение из базы данных в качестве обложки - PullRequest
0 голосов
/ 07 ноября 2018

У меня есть поле images в таблице статей, и я сохраню все изображения в этом поле в виде массива: images/image1.jpg,images/image2.jpg, ...

На моей индексной странице я получаю все статьи и показываю их на домашней странице:

$articles = \App\Article::all();

Я хочу просто загрузить первое изображение из каждой статьи в качестве обложки и показать, что поле изображений является строкой. что я могу сделать?

       @foreach($articles as $article)
        <div class="article_wrapper">
            <div class="article_body">
                    @foreach($article->images as $image)
                        {{ $image }}
                    @endforeach
            </div>
        </div>
      @endforeach

1 Ответ

0 голосов
/ 07 ноября 2018

Использование только маршрута:

Route::any('/article/images/{id}', ['as' => 'article.image', function($id) {

    $article = Article::find($id);

    $images = explode(',',$article->images);

    return Response::download($images[0]);
}]);

Использование контроллера:

namespace MyNamespace;

use Illuminate\Routing\Controller;
use App\Article;
use Response;

class ImagesController extends Controller
{
    public function show($id)
    {
        $article = Article::find($id);

        $images = explode(',',$article->images);

        return Response::download($images[0]);
    }
}

Ваш маршрут:

Route::get('/article/images/{id}', ['as' => 'article.image', 'uses' => 'MyNamespace\ImagesController@show']);

Тогда по вашему мнению:

<img src="{{route('article.image', ['id' => $article->getKey()])}}" />

Так что ваш взгляд будет выглядеть так:

@foreach($articles as $article)
    <div class="article_wrapper">
        <div class="article_body">
            <img src="{{route('article.image', ['id' => $article->getKey()])}}" />
        </div>
    </div>
@endforeach

Если вы не сохраняете полный путь в поле изображений, добавьте к нему префикс:

return Response::download('C:\downloadpath\' . $images[0]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...