一、安装laravel5.5
这里我们可以使用composer命令进行安装laravel框架
composer create-project --prefer-dist laravel/laravel blog 5.5
通过composer安装的项目,已经自动下载了相关依赖并且生成了.env文件和key,无需做其他操作。
然后,访问localhost出现以下界面即安装成功;
- 目录结构 简单粗暴的介绍下目录结构,详细的可自行查阅文档;
- App目录 应用的核心PHP代码就放到这里,除非是组件化开发,不然你的大部分业务操作代码都在这里完成;
- Bootstrap目录 一些自动配置文件和缓存,新手不用太在意;
- Config目录 所有的配置文件都在这了,包括数据库、邮件、缓存等等等等;
- Database目录 数据库迁移文件及填充文件的存放目录,新手暂时不用管,后面深入讲到数据库迁移再说吧;
- Public目录 包含一个应用入口index.php,还有前端资源文件,css,js,images,fonts等等,也是网站根目录;
- Resources目录 除了没编译的原生资源文件外,就是视图文件了,也就是你的前端页面,要在这完成;
- Routes目录 定义的所有路由,也就是url地址,Larave没有绝对的物理路径,所有的地址都是解析路由后,获取控制器和方法,然后通过入口文件index.php去访问;
- Storage目录 编译后的东西、文件缓存都在这呆着;
- Tests目录 自动化测试文件就放这;
- Vendor目录 项目的所有依赖存放目录,如果没有,需要通过执行composer install或composer update进行安装
二、使用laravel5.5框架
首先打开laravel框架routes 目录 里有一个web.php文件
这就是web.php里的代码,return view(‘welcome’)就是调用的视图层
welcome前端文件就在resources目录下的views/welcome.blade.php也就是咱们进localhost那个页面的代码。
也就是在这个文件定义所有路由,也就是url地址,Larave没有绝对的物理路径,所有的地址都是解析路由后,获取控制器和方法,然后通过入口文件去访问;
了解到这些 我们就可以写增删改查基本操作了
首先laravel框架可以自己生成数据表的;
第一步:打开.env文件;
看上图应该就知道数据库账号密码什么的写到哪里啦吧!!!
生成数据表
1.首先生成迁移文件使用cmd命令
迁移文件就存放在database/migrations,实行迁移文件时如果报错的话就把以前的删掉最新生成的留下,接下来打开生成的迁移文件
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateUsersTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->increments('id');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('users');
}
}
这就是原本的迁移文件 接下来我可以修改一些字段,如下代码
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateUsersTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('pwd');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('users');
}
}
这里我设置了一个有3个字段的数据表迁移文件(id,name,pwd);
接下来实行迁移文件
php artisan migrate
使用这个命令生成如下数据表 后两个字段是默认生成的是创建时间及修改时间,你添加数据时自动添加当时时间;
就下来生成model层 在小黑框输入下面命令生成模型层
php artisan make:model User(模型名)
生成的模型层出现在app/http如下图
接下来我们需要完成Usermodel层
接下来我们生成一下控制器层
php artisan make:controller 控制器名 --resource
resource 加上这个函数自动生成的控制器会有自动生成正删改查的方法
这样我们的前置工作就完成了,可以写增删改查啦
1.增删改查-------------展示页面
public function index()
{
$data = Users::all();//查询数据库所有数据 Users是模型层
return view('user.show', ['data' => $data]);//展示视图层并传过去数据 user指的是视图层的目录
}
视图层 起一个以控制器名为名的目录 (名字.blade.php)
<?php foreach($data as $key=>$value){ //foreach 循环数据进行输出?>
<tr>
<td><?php echo $value->id?></td>
<td><?php echo $value->title?></td>
<td><?php echo $value->connect?></td>
<td>
<a href="{{route('user.updata',$value->id)}}">修改</a>
<a href="{{route('user.delete',$value->id)}}" >删除</a>
<a href="{{route('text.show',$value->id)}}">asd</a>
</td>
</tr>
<?php }?>
展示页面就写好了
2.增删改查-------------添加数据
我们写一个a链接跳转到user控制器的create方法;首先我们需要去web.php页面写一个路由;
Route::resource('text','UserController');
然后我们查看一下路由都有哪些
php artisan route:list
自动生成了7个路由
然后我们使用route函数跳转方法(有路由才可以跳转哦)
接下来你要是想跳别的控制器或者那个方法可以参照下面的
<a href="{{route('text.create')}}">新增新闻</a> //text指的是Route::resource('text','UserController');前面那个名字
这样就可以跳到controller/create方法了
public function create()
{
return view('user.create');
}
然后create那个前台页面写个form表单就可以了action也可以使用route方法跳转记得有路由才可以跳哦
然后我前台跳到了下面这个方法
public function store(Request $request)
{
$res = new Users();//实例化模型
$res->title = $request->title;//$request就是我们接到的值啦 输出他的话是非常非常长的一个对象,
$res->connect = $request->connect;
$data = $res->save();//这样我们就添加数据库成功了
if ($data) {
echo "<script>alert('添加成功');location.href='/text'</script>";
}
}
3.增删改查-------------修改
如果修改这个跳转地址跳不过去你可以先看一下下面的删除,
<a href="{{route('user.updata',$value->id)}}">修改</a>
public function updata()
{
$id=$_GET;
foreach($id as $k=>$v){
$ids=$k;
}
$res = Users::findorfail($ids);//find也可以
return view('user.updata', compact('res'));//compac就是把咱们查的得值发到前台
}
updata.blade.php页面
//updata.blade.php页面
<form action="{{route('text.update',$res->id)}}" method="post">
{{ csrf_field() }}
{{method_field('PATCH')}}
<tr>
<td>标题:</td>
<td><input type="text" name="title" value="<?php echo $res->title?>"></td>//$res是我们刚才使用compact函数传过来的值
</tr>
<tr>
<td>内容</td>
<td><input type="text" name="connect" value="<?php echo $res->connect?>"></td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="修改" ></td>
</tr>
</form>
form跳到如下方法
public function update(Request $request,$id)
{
$res = Users::findorfail($id);
$res->title = $request->title;//$request就是我们form表单接过来的值
$res->connect = $request->connect;
$data = $res->save();
if ($data) {
echo "<script>alert('修改成功');location.href='/text'</script>";
}
}
3.增删改查-------------删除
第一步肯定还是要写一个跳转的方法(如果跳转不)
这里没有我要跳转的方法路由所以我又添加了几条
Route::get('user/delete','UserController@destroy')->name('user.delete');
然后跳转
<a href="{{route('user.delete',$value->id)}}" >删除</a>
跳到下面这个方法
public function destroy()
{
$id = $_GET;
foreach($id as $k=>$v){
$ids=$k;
}
$res = Users::where('id', $ids)->delete();
if ($res) {
echo "<script>alert('删除成功');location.href='/text'</script>";
}
}
删除成功;