Laravel8 CRUD 처리를 사용하여 게시 앱 만들기 그 10 URL 링크

목적


  • 게시물의 문자열에 URL이있을 때 링크하는 방법 요약

  • 구현 환경


  • 필자의 실시 환경을 기재한다.
  • 하드웨어 환경



  • 품목
    정보


    OS
    macOS Catalina(10.15.5)

    하드웨어
    MacBook Pro (13-inch, 2020, Four Thunderbolt 3 ports)

    프로세서
    2GHz 쿼드 코어Intel Core i5

    메모리
    32GB 3733MHz LPDDR4

    그래픽
    Intel Iris Plus Graphics 1536 MB


  • 소프트웨어 환경



  • 품목
    정보
    비고


    PHP 버전
    7.4.8
    Homebrew를 사용하여이 방법으로 소개 → Mac Homebrew에서 PHP 설치

    Laravel 버전
    8.6.0
    commposer를 사용하여이 방법으로 소개 → Mac Laravel 환경 구축

    MySQL 버전
    8.0.19 for osx10.13 on x86_64
    Homwbrew를 사용하여이 방법으로 소개 → Mac Homebrew에서 MySQL 설치

    Node.js 버전
    v12.14.1
    Homwbrew를 사용하여이 방법으로 소개 → Mac Homebrew에서 Node.js 설치



    전제 조건


  • 아래의 기사의 작업이 완료하고 있는 것.
  • Laravel8 CRUD 처리를 사용하여 게시 앱 만들기 9 이미지를 업로드 할 수 있습니다.


  • 전제 정보


  • 작성하는 어플리케이션명은 「laravel8_crud」로 한다.
  • 작성하는 MySQL의 데이터베이스명은 「laravel8_crud_DB」로 한다.
  • 이하에 이번 작업의 뒤의 소스 코드의 리모트 리포지터리의 링크를 기재한다.
  • htps : // 기주 b. 이 m/미리를 0104/아라ゔぇl8_c

  • "http"또는 "https"로 시작하는 URL을 연결한다. URL과 통상 캐릭터 라인의 단락은, 전반각 스페이스와 개행으로 한다.

  • 개요


  • 뷰 파일 편집
  • 확인

  • 상세



  • 뷰 파일 편집

  • laravel8_crud 디렉토리에서 다음 명령을 실행하여 뷰 파일을 엽니다.
    $ vi resources/views/contents/output.blade.php
    

  • 아래와 같이 편집한다.

    laravel8_crud/resources/views/contents/output.blade.php
    @extends('layouts.app')
    
    @section('content')
    
    <h1>output</h1>
    
    @foreach ($items as $item)
    <hr>
    @if (isset($item['file_path']))
    <img src="{{asset('storage/' . $item['file_path'])}}" alt="{{asset('storage/' . $item['file_path'])}}">
    @endif
    {{-- 下記を修正する --}}
    <p>{!! nl2br(preg_replace('/(https?:\/\/[^\s]*)/', '<a href="$1" target="_blank" rel="noopener noreferrer">$1</a>', $item['content'])) !!}</p>
    <a href="{{route('detail', ['content_id' => $item['id']])}}">詳細</a>
    <a href="{{route('edit', ['content_id' => $item['id']])}}">編集</a>
    @endforeach
    
    @endsection
    


  • laravel8_crud 디렉토리에서 다음 명령을 실행하여 뷰 파일을 엽니다.
    $ vi resources/views/contents/detail.blade.php
    

  • 아래와 같이 편집한다.

    laravel8_crud/resources/views/contents/detail.blade.php
    @extends('layouts.app')
    
    @section('content')
    
    <h1>detail</h1>
    
    @if (isset($item['file_path']))
    <img src="{{asset('storage/' . $item['file_path'])}}" alt="{{asset('storage/' . $item['file_path'])}}">
    @endif
    <p>投稿ID: {{$item['id']}}</p>
    {{-- 下記を修正する --}}
    <p>投稿内容: {!! nl2br(preg_replace('/(https?:\/\/[^\s]*)/', '<a href="$1" target="_blank" rel="noopener noreferrer">$1</a>', $item['content'])) !!}</p>
    <p>投稿時間: {{$item['created_at']}}</p>
    <a href="{{route('edit', ['content_id' => $item['id']])}}">編集</a>
    <form action="{{route('delete')}}" method="post">
        @csrf
        <input type="hidden" name="id" value="{{$item['id']}}">
        <input type="submit" value="削除">
    </form>
    
    @endsection
    



  • 확인

  • laravel8_crud 디렉토리에서 다음 명령을 실행하여 로컬 서버를 시작합니다.
    $ php artisan serve
    

  • 브라우저에서 다음에 액세스합니다.
  • htp://127.0.0.1:8000/인프t


  • 게시물에 "https://qiita.com/miriwo”를 입력하고 “제출”을 클릭합니다.



  • 아래에 액세스합니다.
  • htp //127.0.0.1:8000


  • URL이 링크되어 있어 클릭하면 새로운 탭으로 필자의 Qiita의 화면이 표시되는 것을 확인한다.



  • URL 게시물의 '자세히 알아보기'를 클릭합니다.



  • URL이 링크되어 있어 클릭하면 새로운 탭으로 필자의 Qiita의 화면이 표시되는 것을 확인한다.



  • 좋은 웹페이지 즐겨찾기