本文概述
- 插入操作
- 检索记录
- 更新操作
- 删除操作
以下是构建Crud应用程序所需的步骤:
- 首先, 我们在laravel 5.8中创建一个名为“ crud”的项目。
文章图片
文章图片
上面的屏幕截图显示’ crud’ 项目已成功创建。
- 现在, 我们在phpMyAdmin中创建数据库。
文章图片
在上面的屏幕截图中, 我们提供了数据库名称laravel_crud。
- 我们的应用程序将与laravel_crud数据库一起使用。编辑.env文件。
文章图片
上面的屏幕截图显示我们已经修改了.env文件。我们已将数据库名称laravel_crud提供给DB_Database字段, 并将其根目录提供给DB_Username。我们在密码字段留空。
- 现在, 我们创建迁移以在laravel_crud数据库中创建一个表, 如以下屏幕截图所示:
文章图片
上面突出显示的语句创建一个迁移“ create_user_table”, 并且表的名称为“ user”。
- 打开在上述步骤中创建的迁移文件。
<
?phpuse Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateUserTable extends Migration{/*** Run the migrations.** @return void */ public function up(){Schema::create('user', function (Blueprint $table) {$table->
bigIncrements('id');
$table->
string('first_name');
$table->
string('last_name');
$table->
string('gender');
$table->
string('qualifications');
$table->
timestamps();
});
}/*** Reverse the migrations.** @return void*/public function down(){Schema::dropIfExists('user');
}}
我们在上面的代码中显示的用户表中创建了四个新列(名字, 姓氏, 性别, 资格)。
- 要将上面的更改迁移到laravel_crud数据库中, 我们使用以下命令:
文章图片
迁移后, 请查看以下屏幕快照中给出的数据库:
文章图片
上面的屏幕显示用户表已在laravel_crud数据库下创建。
- 现在, 我们需要创建一个模型来执行数据库操作。
- 创建模型后, 我们将移至创建Crud模型的app文件夹。
<
?phpnamespace App;
use Illuminate\Database\Eloquent\Model;
class Crud extends Model{//protected $table='user';
protected $fillable=['first_name', 'last_name', 'gender', 'qualifications'];
}
在上述模型中, 我们提供了两个属性, 即$ table和$ fillable。 $ table是包含表名的属性, Crud模型将使用该表名, 而$ fillable属性包含表名的数组, 不能为NULL。
- 现在, 我们创建一个具有资源的控制器, 该资源可以实现所有CRUD操作。
文章图片
上面的屏幕快照显示CrudsController已成功创建。
【Laravel CRUD操作全解】CrudsController的结构如下:
<
?phpnamespace App\Http\Controllers;
use Illuminate\Http\Request;
class CrudsController extends Controller{/*** Display a listing of the resource.** @return \Illuminate\Http\Response*/public function index(){//}/*** Show the form for creating a new resource.** @return \Illuminate\Http\Response*/public function create(){//}/*** Store a newly created resource in storage.** @param\Illuminate\Http\Request$request* @return \Illuminate\Http\Response*/public function store(Request $request){//}/*** Display the specified resource.** @paramint$id* @return \Illuminate\Http\Response*/public function show($id){//}/*** Show the form for editing the specified resource.** @paramint$id* @return \Illuminate\Http\Response*/public function edit($id){//}/*** Update the specified resource in storage.** @param\Illuminate\Http\Request$request* @paramint$id* @return \Illuminate\Http\Response*/public function update(Request $request, $id){//}/*** Remove the specified resource from storage.** @paramint$id* @return \Illuminate\Http\Response*/public function destroy($id){//}}
CrudsController包含内置函数(index(), create(), store(), show(), edit(), update(), destroy())。
现在, 我们通过CrudsController中可用的方法实现CRUD操作。
插入操作
- 首先, 我们在执行插入操作的web.php文件中创建路由。
Route::get('/insert', function () {return view('create');
});
- 现在, 我们在resources / views目录中创建一个名为create.blade.php的视图。
@extends('layout.master')@section('content')<
form method="post" action="{{ route('users.store') }}">
@csrf<
div class="form-group">
<
label for="first_name">
First Name:<
/label>
<
br/>
<
br/>
<
input type="text" class="form-control" name="first_name"/>
<
br/>
<
br/>
<
/div>
<
div class="form-group">
<
label for="first_name">
Last Name:<
/label>
<
br/>
<
br/>
<
input type="text" class="form-control" name="last_name"/>
<
br/>
<
br/>
<
/div>
<
div class="form-group">
<
label for="gender">
Gender:<
/label>
<
br/>
<
br/>
<
input type="text" class="form-control" name="gender"/>
<
br/>
<
br/>
<
/div>
<
div class="form-group">
<
label for="qualifications">
Qualifications:<
/label>
<
br/>
<
br/>
<
input type="text" class="form-control" name="qualifications"/>
<
br/>
<
br/>
<
/div>
<
br/>
<
button type="submit" class="btn-btn" >
Insert<
/button>
<
/form>
@endsection
以上代码的输出为:
文章图片
- 上面的代码调用了CrudsController类的store函数, store()函数的代码如下所示:
public function store(Request $request) {$request->
validate(['first_name'=>
'required', 'last_name'=>
'required', 'gender'=>
'required', 'qualifications'=>
'required']);
$crud = new Crud;
$crud->
first_name =$request->
get('first_name');
$crud->
last_name = $request->
get('last_name');
$crud->
qualifications = $request->
get('qualifications');
$crud->
gender = $request->
get('gender');
$crud->
save();
}
假设我们在表单中输入一些数据, 然后单击下面的屏幕快照中所示的“插入”按钮:
文章图片
- 让我们看一下数据库:
文章图片
上面的屏幕截图显示了我们在表单中输入的数据已成功保存在数据库中。
检索记录
- 首先, 我们在web.php文件中创建一条路由。
上面的语句创建一个带有URL“ / show”的路由, 该路由调用CrudsController类的index()方法。
- 上面的路由调用CrudsController的index函数, 下面给出index()方法的代码:
public function index(){$cruds = Crud::all();
return view('index', compact('cruds'));
}
在上面的代码中, 我们使用all()方法检索与Crud模型关联的表的所有记录, 并将其存储在$ cruds对象中。我们使用view()方法将$ cruds对象传递给index.blade.php文件。
- 下面给出了index.blade.php文件的代码:
@extends('layout.master')@section('content')<
table border="1px">
<
thead>
<
tr>
<
td>
ID <
/td>
<
td>
First Name <
/td>
<
td>
Last Name <
/td>
<
td>
Gender <
/td>
<
td>
Qualifications <
/td>
<
/tr>
<
/thead>
<
tbody>
@foreach($cruds as $crud)<
tr border="none">
<
td>
{{$crud->
id}}<
/td>
<
td>
{{$crud->
first_name}}<
/td>
<
td>
{{$crud->
last_name}}<
/td>
<
td>
{{$crud->
gender}}<
/td>
<
td>
{{$crud->
qualifications}}<
/td>
<
td >
<
form action="{{ route('users.destroy', $crud->
id)}}" method="post">
@csrf@method('DELETE')<
button class="btn btn-danger" type="submit">
Delete<
/button>
<
/form>
<
/td>
<
td >
<
form action="{{ route('users.edit', $crud->
id)}}" method="GET">
@csrf<
button class="btn btn-danger" type="submit">
Edit<
/button>
<
/form>
<
/td>
<
/tr>
@endforeach<
/tbody>
<
/table>
@endsection
以上代码的输出为:
文章图片
更新操作 当我们单击Edit按钮时, 它将调用CrudsController类的edit()函数。下面给出了edit()方法的代码:
CrudsController.php
public function edit($id){//$crud= Crud::find($id);
return view('edit', compact('crud'));
}
在上面的代码中, 我们使用find()方法查找给定id的记录, 并将其存储在$ crud对象中。我们将Crud对象传递到edit.blade.php文件。
edit.blade.php
@extends('layout.master')@section('content')<
form method="Post" action="{{route('users.update', $crud->
id)}}">
@method('PATCH') @csrf<
div class="form-group">
<
label for="first_name">
First Name:<
/label>
<
br/>
<
br/>
<
input type="text" class="form-control" name="first_name" value=http://www.srcmini.com/{{$crud->
first_name}}>
<
br/>
<
br/>
<
/div>
<
div class="form-group">
<
label for="first_name">
Last Name:<
/label>
<
br/>
<
br/>
<
input type="text" class="form-control" name="last_name" value=http://www.srcmini.com/{{$crud->
last_name}}>
<
br/>
<
br/>
<
/div>
<
div class="form-group">
<
label for="gender">
Gender:<
/label>
<
br/>
<
br/>
<
input type="text" class="form-control" name="gender" value=http://www.srcmini.com/{{$crud->
gender}}>
<
br/>
<
br/>
<
/div>
<
div class="form-group">
<
label for="qualifications">
Qualifications:<
/label>
<
br/>
<
br/>
<
input type="text" class="form-control" name="qualifications" value=http://www.srcmini.com/{{$crud->
qualifications}}>
<
br/>
<
br/>
<
/div>
<
br/>
<
button type="submit" class="btn-btn" >
Update<
/button>
<
/form>
@endsection
单击“编辑”按钮后, 出现如下所示的屏幕, 并要求你更新数据。
文章图片
在上面的屏幕中, 你可以根据需要更改任何字段。假设我以名字输入“ Harshita”, 以姓氏输入tripathi, 其他字段保持不变, 请单击“更新”按钮, 如下所示:
文章图片
单击“更新”按钮后, 控件将移至CrudsController.php文件的update()函数。
CrudsController.php
public function edit($id){//$crud= Crud::find($id);
return view('edit', compact('crud'));
}
在上面的代码中, 我们使用find()方法查找给定id的记录, 并将其存储在$ crud对象中。我们将Crud对象传递到edit.blade.php文件。
edit.blade.php
public function update(Request $request, $id){// $request->
validate(['first_name'=>
'required', 'last_name'=>
'required', 'gender'=>
'required', 'qualifications'=>
'required']);
$crud = Crud::find();
$crud->
first_name =$request->
get('first_name');
$crud->
last_name = $request->
get('last_name');
$crud->
qualifications = $request->
get('qualifications');
$crud->
gender = $request->
get('gender');
$crud->
save();
}
上面的代码更新了数据库。
让我们看一下数据库:
文章图片
上面的屏幕快照显示数据已成功更新。
删除操作 如果单击删除按钮, 则它将调用CrudsController类的destroy()函数。下面给出了destroy()方法的代码:
public function destroy($id){$crud=Crud::find($id);
$crud->
delete();
}
推荐阅读
- Laravel文件上传
- Laravel数据库
- Laravel Blade模板
- 什么是控制器()
- Laravel控制器中间件
- Laravel Composer安装详细教程
- 创建第一个Laravel项目详细步骤
- Laravel基本路由
- Laravel应用程序结构解释