laravel框架基础知识总结

laravel框架基础知识总结

1.laravel简介

laravel框架是一套简洁的web开发的框架,具有简介语法,易于理解提供了强大的开发工具。
laravel框架提供了很多功能,如:数据库(DB)、缓存(cache)、会话(session)、上传文件等;
laravel框架的优点:
文档齐全,社区活跃,后期支持好。

2.laravel下载安装

2.1MAC

MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑

2.1.1实践

smarty
将压缩包解压后,将libs文件夹拷贝到项目的根目录下,并重命名为smarty,然后在控制器类中引入Smarty.class.php
创建模型

<?php
class NewsModel
{
    function list() {
        $dns = "mysql:host=localhost;dbname=test";
        $user = 'root';
        $password = 'root';
        $pdo = new PDO($dns, $user, $password);
        $res = $pdo->query("select * from news");
        $news = $res->fetchAll(PDO::FETCH_ASSOC);
        return $news;
    }
}

创建控制器类

<?php
include 'smarty/Smarty.class.php';
include 'NewsModel.php';
class NewsController
{
    // 显示所有的新闻数据
    public function index()
    {
        // 创建NewsModel类的对象
        $model = new NewsModel();
        $news = $model->list();
        // 创建Smarty 类的对象
        $smarty = new Smarty();
        $smarty->assign("news", $news);
        // 读取news.html文件的源代码,并发送给浏览器
        $smarty->display('news.html');
    }
}

然后写一个html文件,里面写入显示的内容
如下:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
  <link href="https://cdn.bootcss.com/twitter-bootstrap/4.3.1/css/bootstrap.css" rel="stylesheet">
</head>
<body>
  <div class="container">   
  <table class="table">
    <tr>
      <th>编号</th>
      <th>标题</th>
      <th>创建时间</th>
    </tr>
   {foreach $news as $item}
   <tr>
     <td>{$item['id']}</td>
     <td>{$item['title']}</td>
     <td>{$item['create_time']}</td>
   </tr>
   {/foreach}
  </table>
  </div>
</body>
</html>

在浏览器中要直接访问控制器,因为控制器是模型与视图的桥梁
但是我们无法再浏览器中直接访问某个控制器类中的具体方法
但是我们有办法解决,解决思路是:
在项目的根目录下,新建一个index.php
在这个文件中,获取用户想要访问的控制器和方法名称,并进行调用

<?php
include 'NewsController.php';
// 获取请求的控制器名称
$c=$_GET['c'];
// 获取请求的方法名称
$a=$_GET['a'];
// 创建控制器类的对象
$ctrl=new $c();
// 调用请求的方法
$ctrl->$a();

这个index.php哟一个专业的名词,叫做入口文件

3.下载和安装composer

Laravel 使用 Composer 来管理项目依赖。因此,在使用 Laravel 之前,请确保你的机器已经安装了 Composercomposer 是用来管理php开发过程中用到的一些包的工具,可以叫做包管理工具

3.1使用安装程序

通过如下地址,下载composer安装包
添加链接描述
然后一路默认安装即可

3.2命令行安装

按照如下地址给出的方法安装即可
添加链接描述
如果下载的慢可以安装阿里云镜像

composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/

4.创建laravel项目

4.1laravel安装器

首先执行如下命令,安装

composer global require "laravel/installer"

会执行一系列的安装,安装成功即可
然后创建项目

laravel new demo1
4.2composer创建项目

参考资料
添加链接描述
注意:创建laravel项目一定要选择一个英文目录
命令如下

composer create-project --prefer-dist laravel/laravel demo1

安装成功即可

4.3启动项目

进入到刚刚创建的项目下,运行如下命令

php artisan serve//默认端口是8000

可以使用如下命令自定义端口

php artisan serve --port=8888

也可以改变主机地址

php artisan serv --host=localhost

5.通过laravel框架实现sql语句增删改查思路

首先要更改.env文件

DB_CONNECTION=mysql
DB_HOST=127.0.0.1//自己本机地址
DB_PORT=3306
DB_DATABASE=//数据库名称
DB_USERNAME=//自己数据库的账号
DB_PASSWORD=//自己数据库的密码

创建数据库迁移文件
运行如下命令,创建数据库迁移文件

 php artisan make:migration create_post_table

编辑数据库迁移文件

 public function up()
    {
        Schema::create('post', function (Blueprint $table) {
            $table->increments('id');
            $table->string("title")->default('');
            $table->string("content")->default('');
            $table->timestamps();
        });
    }

设置字段默认长度
在app\providers目录下的AppServiceProvider文件中的boot函数中,加入如下代码

 php artisan migrate

运行数据库迁移文件

  public function boot()
    {
        // 设置字段默认长度
        Schema::defaultStringLength(200);
    }

创建类

php artisan make::model 模型类的名称

添加新字段
就是在database/migrations文件中新建的php文件中添加即可
然后把数据库原先的表删除,migrations表中对应的数据删除,然后再运行数据库迁移即可
然后创建控制器

php artisan make:controller 控制器名称

编写控制器中的 index 方法

// 展示文章列表
public function index()
{
    $posts=Post::all();
    return view('post/index',['posts'=>$posts]);
}
// 展示添加文章的界面
public function add(){
    return view('post/add');
}
 // 新增文章
    public function store(){
        return 'store';
    }
      // 展示待编辑的数据
    public function edite(Post $post){
        return view('post/edite',['post'=>$post]);
    }
// 更新数据
    public function update(){
        $id=request('id');
        $model=Post::find($id);
        $model->title=request('title');
        $model->content=request('content');
        $res=$model->save();
        if ($res) {
            return redirect('/posts');
        } else {
            return redirect('/posts/'.$id.'/edite');
        }

    }    
 // 删除文章数据
    public function delete(Post $post)
    {
        $res = $post->delete();
        return redirect('/posts');

        // $model=Post::find($post);
        // $model->delete();
    }    

配置路由

use Illuminate\Support\Facades\Route;

Route::get('/posts','\App\HttP\Controllers\PostController@index');
// 展示用于添加文章的界面
Route::get('/posts/add','\App\HttP\Controllers\PostController@add');
// 新增文章数据
Route::post('/posts','\App\HttP\Controllers\PostController@stroe');
// 展示待编辑数据
Route::get('/posts/{post}/edite','\App\HttP\Controllers\PostController@edite');
// 更新文章数据
Route::put('/posts','\App\HttP\Controllers\PostController@update');
// 删除数据
Route::get('/posts/{post}/delete','\App\HttP\Controllers\PostController@delete');

显示文章、待编辑页面自己编写即可。

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值