博主信息
Victor的博客
博文
35
粉絲
0
評論
0
訪問量
7932
積分:0
P豆:76

laravel-創建“控制器”和“模型”,使用模型方法獲取數據庫內容并輸出--2019年11月1日

2019年11月04日 18:01:33閱讀數:362博客 / Victor的博客 / laravel框架

1、通過artisan和手動創建控制器,并通過設置路由訪問
2、通過artisan和手動創建模型,并通過配置數據庫實現從表中獲取數據
3、在控制器中引用模型,通過模型方法獲取數據庫中的數據,并輸出


一、通過artisan自動創建控制器和模型:


在Laravel根目錄下打開控制臺 ---> 輸入命令行:php artisan make:controller Home  ---> 框架自動在 App/Http/Controllers目錄下創建與類名同名的php文件(控制器模塊);
                                              ---> 輸入命令行:php artisan make:model Models\CheckLogin  ---> 框架自動在 App/Models目錄下創建與類名同名的php文件(模型模塊);
在Routes目錄下的web.php中設置路由訪問:Route::get('/login', '[email protected]'); 將 url中的“login”map到 Home類模塊 的 login()方法上。

如下圖所示:

autoLogin.jpgautoLogin.jpg


二、手工創建控制器和模型:

1) 在 App/Http/Controllers目錄下手工創建與類名同名的php文件(控制器模塊)Home.php

實例
<?php
namespace App\Http\Controllers;
use App\Models\CheckLogin;
class Home extends Controller {
	public function login(CheckLogin $check) {
		echo "<strong>顯示登錄頁面...</strong>", "<br>";
		echo $check->checkResult();
	}
}
運行實例 ?點擊 "運行實例" 按鈕查看在線實例

要點:

  • 添加與真實路徑相同的命名空間

  • 控制器下的標準類,需要繼承自同一命名空間下的Controoler

  • 編寫自定義成員方法完成相應功相應功能

2)  在 App/Models目錄下手工創建與類名同名的php文件(模型模塊)CheckLongin.php

實例
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class CheckLogin extends Model {
	public function checkResult() {
		return "<p style='color:red;font-weight: 500;' >此用戶可以登錄!</p>";
	}
}
運行實例 ?點擊 "運行實例" 按鈕查看在線實例

要點:

  • 添加與真實路徑相同的命名空間

  • 需要繼承自Illuminate\Database\Eloquent\Model

  • 編寫自定義成員方法完成相應功相應功能

3)  在Routes目錄下的web.php中設置路由訪問

設置方法與實現效果同上。


三、在控制器中引用模型,通過模型方法獲取數據庫中的數據,并輸出

1、在.env中設置數據庫的連接參數;

2、使用artisan創建一個顯示數據庫內容的控制器模塊: Show.php,編寫自定義方法list();

3、使用artisan創建一個模型類文件,(將數據庫中要操作的表,映射到這個模型文件中,類名與表名相同):User.php,編寫數據庫操作方法getData();

4、在resources/views目錄下創建一個模版視圖文件:show.blade.php;

5、配置web.php中的路由:Route::get('show', '[email protected]');

6、訪問 根域名/show,顯示如下:

datalist.jpg

自定義方法代碼如下:

實例
<?php
namespace App\Http\Controllers;
use App\Models\User;
class Show extends Controller {
	public function list() {
		$res = (new User)->getData();
		return view('show')->with('items', $res);
	}
}

運行實例 ?點擊 "運行實例" 按鈕查看在線實例
實例
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class User extends Model {
	protected $table = 'user';
	protected $primaryKey = 'uid';
	public function getData() {
		return $this->get()->toArray();
	}
}

運行實例 ?點擊 "運行實例" 按鈕查看在線實例

總結:

1、練習了通過artisan和手動創建控制器、模型、數據表映射類,并通過設置路由訪問 ;
2、控制器中操作模型方法:可以使用依賴注入、可以使用實例化對象,當然也可以使用定義好的類的靜態方法。



批改狀態:合格

老師批語:非常直觀

全部評論

文明上網理性發言,請遵守新聞評論服務協議

條評論
暫無評論暫無評論!
  • 第十期線上培訓班 白小姐救世民彩图2019