그냥 사는 이야기

Laravel 5.3 Tutorial for Beginner - Profile Design and Date 본문

Development/Web

Laravel 5.3 Tutorial for Beginner - Profile Design and Date

없다캐라 2020. 1. 19. 04:38
반응형

Profile View 추가

views/user 디렉토리 추가

profile.blade.php
@extends('layouts.app')

<style type="text/css">
    .profile-img {
        max-width: 150px;
        border: 5px solid #fff;
        border-radius: 100%;
        box-shadow: 0 2px 2px rgba(0, 0, 0, 0.3);
    }
</style>

@section('content')
<div class="row">
    <div class="col-md-6 col-md-offset-3">
        <div class="panel panel-default">
            <div class="panel-body text-center">
                <img class="profile-img" src="http://www.lovemarks.com/wp-content/uploads/profile-avatars/default-avatar-knives-ninja.png">

                <h1>{{ $user->name }}</h1>
                <h5>{{ $user->email }}</h5>
                <h5>{{ $user->dob }} ({{ Carbon\Carbon::createFromFormat('Y-m-d', $user->dob)->age }} years old)</h5>

                <button class="btn btn-success">Follow</button>
            </div>
        </div>
    </div>
</div>
@endsection
ProfileController.php
public function profile($username)
{
    $user = User::whereUsername($username)->first();
    // User::where('username', $username);
    // User::where('username', '=', $username);
    return view('user.profile', compact('user'));
}

Mutator 사용

나이가 나오는 부분에서 view 단에서 Carbon을 직접 코딩하는 것은 사용하기에도 복잡하고 보기에 좋지 않다. 이를 수정하기에 앞서 확인해봐야 할 사항이 있다.

profile.blade.php
{{ Carbon\Carbon::createFromFormat('Y-m-d', $user->dob)->age }}

부분을 아래 2가지 경우로 변경해 보면

{{ $user->created_at->age }}
{{ $user->dob->age }}

dob 부분에서는 에러가 난다. 이것은 type 차이 때문인데 이것을 해결하려면 아래를 추가한다.

App/User.php
protected $dates = [
    'dob',
];

timestamp 이기 때문에 불필요한 h:m:s 까지 0으로 출력되는데 이것도 제거하고 보여주는 format을 수정하기 위해서는

{{ $user->dob->format('l j F Y') }} ({{ $user->dob->age }} years old)
Comments