又LAG隨性筆記
  • 關於我
  • 作品集
  • 生活隨筆
  • 與我聯絡
  • 隨手扎

隨手扎

October 22, 2019

30天成爲Laravel萌新(目錄)

這是第二次參加「iT 邦幫忙鐵人賽」。上次報了兩個主題,只有一個完賽。這次報了三個主題……還好全都完賽了。雖然開賽前,對於一個主題先寫了近十天左右的文章,但在賽中,趕稿壓力還是頗大的。

30天成爲Laravel萌新(目錄)

「30天成爲Laravel萌新」是我最重要的一個系列,報名在Modern Web主題下,並同步發表於又LAG隨性筆記。下面列出每天文章連結:

  • 30天成爲Laravel萌新(第0天) - 前言
  • 30天成爲Laravel萌新(第1天) - 認識Laravel
  • 30天成爲Laravel萌新(第2天) - 安装 Laravel
  • 30天成爲Laravel萌新(第3天) - 使用laradock建立開發環境(上)
  • 30天成爲Laravel萌新(第4天) - 使用laradock建立開發環境(下)
  • 30天成爲Laravel萌新(第5天) - Laradock的工作空間容器
  • 30天成爲Laravel萌新(第6天) - 配置專案
  • 30天成爲Laravel萌新(第7天) - 認識artisan
  • 30天成爲Laravel萌新(第8天) - 路由&頁面模板(1)
  • 30天成爲Laravel萌新(第9天) - 路由&頁面模板(2)
  • 30天成爲Laravel萌新(第10天) - 路由&頁面模板(3)
October 17, 2019

30天成爲Laravel萌新(第30-1天) - 總結

這是第二次參加鐵人賽。這個主題是我決定參賽出就已經定好,總算寫完了。從介紹、安裝、配置,使用laradock、artisan,路由、模板,Parsdown(Markdown),再到控制器、資料庫,以及另我以些驚豔的Pagiantion,然後多語系支援、紀錄檔,客製化錯誤頁面,檔案上傳與表單驗證,到最後登入驗證。

在這過程中,一學習到不少,很充實。(還有下次不要在一次報三個主題了…)

不過,Laravel官方文檔其實相當豐富完整,這30天的文章,頂多只能當作而外的參考而已,但願對想學習Laravel的人還是有幫助。

最後,你可以在這裡看到跟Laravel有關的文章。或是看看另外兩個系列文章( 又LAG的EOS.IO技術筆記 和 有點玩鬧性質的 又LAG的ML學習筆記 )。

October 17, 2019

30天成爲Laravel萌新(第30天) - 登入驗證

這部份在Django時,明明是最先學的,在Laravel卻放到了最後☺

要使用Laravel提供的會員系統,相當容易,只須要:

artisan make:auth
artisan migrate

然後瀏覽http://localhost/register 註冊帳號,或是http://localhost/login 登入帳號。仔細一看,會多了這些檔案:

	new file:   app/Http/Controllers/HomeController.php
	new file:   resources/views/auth/login.blade.php
	new file:   resources/views/auth/passwords/email.blade.php
	new file:   resources/views/auth/passwords/reset.blade.php
	new file:   resources/views/auth/register.blade.php
	new file:   resources/views/auth/verify.blade.php
	new file:   resources/views/home.blade.php
	new file:   resources/views/layouts/app.blade.php
	modified:   routes/web.php

其中routes/web.php多了:

Auth::routes();

Route::get('/home', 'HomeController@index')->name('home');

現在瀏覽http://localhost/home 也有畫面了。

October 16, 2019

30天成爲Laravel萌新(第29天) - 表單驗證

昨天的程式碼有一些註解的內容,先取消註解試試。

resources/views/images/upload.blade.php部份內容

       @if ($errors->any())
            <div class="alert alert-danger">
                <ul>
                    @foreach ($errors->all() as $error)
                        <li>{{ $error }}</li>
                    @endforeach
                </ul>
            </div>
        @endif

routes/web.php處理post('/images/upload')請求的部份內容:

    Validator::make($request->all(), [
        'file' => 'required|image',
    ])->validate();

驗證表單資料

    Validator::make($request->all(), [
        'file' => 'required|image',
    ])->validate();

差不多等價於:

    $validate = $request->validate([
        'file' => 'required|image',
    ]);

$request有validate()的方法。還可以直接建立一個驗證器,繼承Request:

php artisan make:request ImageUpload

上面執行完後,現在,在app/Http/Requests/目錄下多了ImageUpload.php,內容改成下面這樣:

October 15, 2019

30天成爲Laravel萌新(第28天) - 上傳檔案

Laravel要上傳檔案非常的簡單,今天就來簡單帶個範例吧!

建立檔案目錄連結

首先,現用Artisan建立目錄連結。

artisan storage:link

上面命令會建立storage/app/public目錄,並將目錄同樣綁定到public/storage。這讓於此目錄下的內容,可以透過http://localhost/storage/<FILE NAME>存取。在public目錄下的檔案,基本都可以直接透過瀏覽器存取。

上傳頁面

同樣以一個簡單的上傳頁面作為範例。先建立resources/views/images/upload.blade.php:

@extends("base",['title'=>'上傳圖片'])

@section('title', '上傳圖片')

@section('body')
    <form action="{{route('image.upload')}}" method="post" enctype="multipart/form-data">
        @csrf

       <!--
       @if ($errors->any())
            <div class="alert alert-danger">
                <ul>
                    @foreach ($errors->all() as $error)
                        <li>{{ $error }}</li>
                    @endforeach
                </ul>
            </div>
        @endif
        -->

        <input name="file" type="file" accept="image/*" value=""/>
        <input name="" type="submit" value="上傳"/>
    </form>
@endsection
October 14, 2019

30天成爲Laravel萌新(第27天) - 本地化、多語言支援(Localization)

@extends("base",['title'=>'哎呀,找不著頁面'])

@section('title', '哎呀,找不著頁面')

@section('body')
    <h1>{{__('404 error message')}}</h1>
    <b>哎呀,找不著頁面</b>
    <p>
        <ul>
            <li><a href="/">點擊我,回到首頁</a></li>
            <li><a href="{{route('blog/post.index')}}">我的網誌</a></li>
        </ul>
    </p>
@endsection

開始

在昨天簡單建立的錯誤頁面中,又再一次偷渡了一個東西。對,就是那個有點怪怪的{{__('404 error message')}},實際上這等價於@lang('404 error message')。透過lang()函式的方式,也可以在控制器做變換。lang()會根據給定的字串,以及設定(app/config.php)中的locale和faker_locale轉換為對應的語言。預設會轉換為locale所設定的,而備用語言可由faker_locale設定。當兩者都不存在時,會直接輸出字串。還記得我們把app/config.php部份內容改成這樣嗎?

    'locale' => 'zh-TW',
    'fallback_locale' => 'en',

不過,不管是locale還是faker_locale,都還找不著{{__('404 error message')}}要轉換成的文字,所以現在會直接生成404 error message。

  • ««
  • «
  • 1
  • 2
  • 3
  •  … 
  • 26
  • 27
  • 28
  •  … 
  • 33
  • »
  • »»
© 又LAG隨性筆記 2023