---
# System prepended metadata

title: laravel-3
tags: [laravel]

---

###### tags: `laravel`
DAY3-22.8.31
# laravel-3

# 建立並顯示出的連線頁面 - 方法1

- 預期設定:
網址設定命名 : studebt
控制台設定命名 : StudentController
顯示的內容要放在 : view/StudentController(FILE)底下叫index.blade.php內

- 到路由建立指向網址:
1. 在VSCODE  Ctrl+P 輸入web.php並選擇 -> 到了路由頁面
2. 為了讓網址可以指向StudentController資料夾/index的頁面
3. 把路由/web.php預設的
    <pre>
    Route::get('/', function () {
    return view('welcome');
    });</pre>
   複製起來並做更改
   *註:其/為網址設定, view(為實際檔案位置)

4. Ctrl+P輸入:welcome -> 定位到view資料夾
   在其底下自行建立資料夾(自訂控制台的命名),此例為StudentController資料夾 -> 
   新增index.blade.php -> 輸入網頁要顯示的內容
   
5. 到官網The Basics -> Controllers -> 搜尋 php artisan
   將範例
   <pre>php artisan make:controller</pre>
   複製起來 -> 
   在其之後+空白, 接上資料夾名稱(StudentController)組合成 如下:
   php artisan make:controller StudentController
   
6. 回到Vscode -> Ctrl+~ 打開選單 -> 右下設定更改為gitbash ->
   貼上剛剛組合的代碼 <pre>php artisan make:controller StudentController</pre>
   這樣會在Http/Controllers底下, 產生檔案 : StudentController.php

7. 到Controllers/StudentController.php內, 預設的class內的執行區
   建立一個function
   <pre>public function 自行命名A(){
        執行內容
    }</pre>
8. 並在上述的function內新增 return view('StudentController.index'); 如下:
    <pre>public function 自行命名A(){
        return view('StudentController.index');
    }</pre>

9. 到官網的Basic Controllers下複製範例
   <pre>Route::get('/user/{id}', [UserController::class, 'show']);</pre>
   貼到路由的web.php , 並依需求稍作修改 , 如下
   <pre>Route::get('/student', [StudentController::class,'index']);
   路由::取得方式('/設置的網址'), [實際檔案位置(資料夾名稱)底下的class,底下的內容(名為index的function)]</pre>
   
   
   
# 建立並顯示出的連線頁面 - 方法2
- 差異1 : 
  改用網址帶值, 不須像方法1再 路由/web.php裡再
  Route::resource('bikes', [BikeController::class,"create"]); 
  把實際檔案路徑寫成[陣列, 並在該陣列輸入 "要使用的function"]
  而導致每當需要更動時,須到web.php下方調整對應的function內容
  
- 差異2 : 
  而是再web.php輸入 Route::resource('bikes', BikeController::class);
  少了設為陣列 且不須再陣列內的最後 寫上使用的function
  且讓系統自行生成 可直接使用的function  

- 缺點 : 
  由於非手刻設定, 如同套件般不建議自行修改其內容, 以免發生錯誤
  僅使用其設定而非更改, 如function的命名等...
  
  
- 網址對比:
  方法1為
  Route::resource('bikes', [BikeController::class,"create"]);  
  http://localhost/LARAVEL/example-app/public/bikes
  
  方法2為
  Route::resource('bikes', BikeController::class);  
  http://localhost/LARAVEL/example-app/public/bikes/create

  兩者都是在web.php內將網址設成bikes, 
  但方法1是每當你需要一個新的"分頁"
  就需要將該分頁再web宣告一個function執行內容, 且增加一段如上述的code 
  去製造一個網址與實際檔案位置的部分
  
  但方法2則只須再web.php寫一個網址與實際檔案位置的部分
  而function的部分 分割到Http/Controllers/自行命名.php內調整
  然後只須再網址帶值 即可引入指定的function內容


  
-  實作:
1. 官網 -> The Basics -> Controller -> Resource Controllers -> 
   複製範例 : <pre>php artisan make:controller PhotoController --resource</pre>
   修改範例 : <pre>php artisan make:controller 自行命名A --resource</pre>
   將修改內容貼到git Bash執行
   會自動在專案的Http/Controllers , 產生檔案 : 自行命名A.php
   
2. 回到官網 -> 一樣Resource Controllers -> 往下一點
   複製範例 : 
   <pre>
   use App\Http\Controllers\PhotoController;
   Route::resource('photos', PhotoController::class);</pre>
   修改範例:
   <pre>
   use App\Http\Controllers\自行命名A; <=該命名為要使用的檔名(上述步驟1產生的檔名A)
   Route::resource('自定義網址', 上述步驟1產生的檔案內的class名稱 ::class);</pre>
   到 路由/web.php
   上方貼上 : use App\Http\Controllers\自行命名;
   下方貼上 : Route::resource('自訂義網址', class名稱 ::class);
   
3. 到Http/Controllers/自行命名A.php內 ->
   再index,create...等function內輸入 : 要執行的內容

---------------------------------------------------------------------
# 方法2 延伸應用 
- 顯示CRUD相關指令 : 
  git Bash 輸入 : php artisan route:list
  
- CRUD指令相關規範 : 
  官網 -> Resource Controllers -> 下方 -> 表格
  
- 兩個大框號{{ }}的意思 : 
  未知
  
1. 到官網 -> 輸入Helpers -> URLs類 -> 選route -> 
   複製範例:
   <pre>$url = route('route.name', ['id' => 1]);</pre>
2. 到views底下的 -> 自行命名(FILE)/index.blade.php
   寫a標籤 , 並再href加上兩層尖框號 {{ }} 
   <pre>< a href="{{}}">< /a></pre>
3. 放入剪下的內容 route('route.name', ['id' => 1]) 到  {{ }}  內
   <pre>< a href="{{route('route.name', ['id' => 1])}}">連結名稱</ a></pre>
   
   
   
   
   
   
   
   
#  其它:
   php artisan --version 顯示版本
   
   

