Laravel框架学习

了解框架的MVC模型

  • 使用框架来实现一个通过url访问用户邮箱的小功能来了解路由,模型和视图的写法

首先在数据库中插入两条数据

使用php artisan生成模型

通过文档得知命名规范如下

数据表名称
请注意,我们并没有告诉 Eloquent 我们的 Flight 模型使用哪个数据表。 除非明确地指定了其它名称,否则将使用类的复数形式「蛇形命名」来作为表名。因此,在这种情况下,Eloquent 将假设 Flight 模型存储的是 flights 数据表中的数据,而 AirTrafficController 模型会将记录存储在 air_traffic_controllers 表中。
你可以通过在模型上定义 table 属性来指定自定义数据表:

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Flight extends Model
{
/**
* 与模型关联的表名
*
* @var string
*/
protected $table = 'my_flights';
}

所以我们使用的数据表为usertests,模型为Usertest

默认情况下,Eloquent 预期你的数据表中存在 created_at 和 updated_at 两个字段 。如果你不想让 Eloquent 自动管理这两个列, 请将模型中的 $timestamps 属性设置为 false:

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Flight extends Model
{
/**
* 是否主动维护时间戳
*
* @var bool
*/
public $timestamps = false;
}

Usertest.php模型代码

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Usertest extends Model
{
use HasFactory;

public $timestamps = false;
}

PostTestController.php控制器代码

<?php

namespace App\Http\Controllers;

use App\Models\laravel_study_user;
use App\Models\Usertest;
use Illuminate\Http\Request;

class PostTestController extends Controller
{
public function show($user)
{
$dbuser = Usertest::query() -> where("username",$user) -> firstOrFail();
// dd调试php程序
// dd($dbuser);

// 修改了alex用户的email
// $dbuser->email = "alex.com";
// $dbuser->save();

// return视图
return view("posttest",["user"=>$user,"email"=>$dbuser->email]);
}
}

web.php路由代码

<?php

use Illuminate\Support\Facades\Route;

/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/

Route::get('/', function () {
return view('welcome');
});

Route::get('posttest/{user}',[\App\Http\Controllers\PostTestController::class,"show"]);

posttest.blade.php视图代码

<html>
<head>
<title>hello laravel</title>
</head>
<body>
<h1> {{ $user }}</h1>
<p>{{ $email }}</p>
</body>
</html>

效果

文章作者: Alex
文章链接: http://example.com/2021/04/14/Laravel-study/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Alex's blog~