ubuntu学习笔记(2)之laravel框架

时间:2024-03-14 16:01:43

前面笔记写到了环境的安装,那我们今天就用下比较流行的laravel框架

第一步 安装Composer

     将composer安装到系统环境变量PATH所包含的路径中,这样以后直接输入composer就能执行composer命令了

     curl -sS http://getcomposer.org/installer |sudo php -- --install-dir=/usr/local/bin --filename=composer

     ubuntu学习笔记(2)之laravel框架

     这样就是显示安装成功。 可以看到版本是 1.5.1的

第二步 切换资源库,由于国内访问国外网站速度极慢,我们使用packagist中国全量镜像的链接。

     修改我们的composer的配置

     composer config -g repositories.packagist composer https://packagist.phpcomposer.com

ubuntu学习笔记(2)之laravel框架
注意此处提示信息为,不建议使用root用户执行配置操作,我们切换到装镜像设置的用户,或者可以自行添加一个用户,切换后执行

第三步 创建项目目录,执行安装程序

     3.1 创建目录

      mkdir -p /var/www/  如果提示mkdir: cannot create directory ‘/var/www/’: Permission denied 没有权限

            3.1.1 修改用户lipy(此处是你创建的用户)的权限

                切到root用户 执行 vim /etc/sudoers 

                在%admin ALL=(ALL) ALL 下面新增

                lipy ALL=(ALL) ALL 保存退出,重启虚拟机

      3.2 执行安装

           composer create-project laravel/laravel test 5.1.4 (test是项目名 后面5.1.4是项目版本  不带版本号默认装最新环境)

          如果安装过程中提示Script php artisan clear-compiled handling the pre-update-cmd event returned with error code 255

          执行php artisan clear-compiled删除已经编译的类文件,

        进入test项目目录,编辑compser.json文件

        删除 "pre-update-cmd":[

                "php artisan clear-compiled"

        ]

        在 "post-update-cmd": [

                "php artisan clear-compiled" (新增这一句)

        ]

        然后执行composer update就行了
第四步 目录介绍

         ubuntu学习笔记(2)之laravel框架

        详细目录介绍 http://zoufeng.me/2015/07/22/laravel5-1-dir-analysis/

第五步 连接数据库

        进入项目目录,修改 .evn文件

           DB_HOST=localhost
           DB_DATABASE=homestead
           DB_USERNAME=homestead
           DB_PASSWORD=secret
第六步 整合smarty模板

        安装smaryt模板

          composer require latrell/smarty dev-master

          执行composer update 更新依赖包
          然后在config/app.php里面注册smarty
          'providers' => [
                // ...
               'Latrell\Smarty\SmartyServiceProvider',
           ]
          然后运行php artisan vendor:publish
          生成smarty配置文件
          到此smarty就整合进来了

第七步 路由、控制器和视图

       7.1 路由和试图

          Laravel应用的 大多数路由都将在 app/Http/routes.php 中定义,大多数基本的 Laravel 路由
          都只接受一个 URI 和 一个 闭包(Closure) 参数。下面是一个简单的GET路由:
          Route::get('/', '[email protected]');

                 1.    Route: 声明一个路由;
                 2.    get:即定义一个GET路由,除get外,还有post、put、delete路由;
                 3.    /:即指向网站
                 4.   [email protected]:前面为控制器,后面是调用控制器中的方法
                 该路由是用户访问根目录 / 时,执行控制器WelcomeController中的index方法。
                 public function index()
                 {
                         return view('welcome');
                 }
           上面路由调用控制器app/Http/Controllers/WelcomeController.php中的index()方法:
           该方法返回了一个welcome视图,该视图即为
           resources/views/welcome.tpl(我们上面配置的Smarty模板视图文件)
           方法中除了可以返回字符串,也能返回json数据(API开发)或html、tpl等视图文件等
           返回视图文件同时返回数据的方法:
                Return view(‘视图名称’,’data’)
                Return view(‘视图名称’)->with(‘data’,$data);
                Data可以为字符串、数组等
           视图页面直接使用smarty引擎获取数据展示
           因为laravel数据库查询的结果是一个包含对象的数组
           array(1)
           {
                [0]=> object(stdClass)#31 (1)  {
                      ["name"]=> string(24) "这是一个测试~~" }
           }
          不能直接用{$data[‘name’]}或者{$data.name}来显示,正确的输出方法是:{$data->name}
     7.2 控制器
          使用php artisan命令创建Controller 命令
          php artisan make:controller AdminController   
          创建的controller包含基本的方法(index、show、create等)

          php artisan make:controller AdminController –plain
          创建不包含任何方法的Controller文件
第八步 数据库操作

      8.1 简介

      Laravel 让连接数据库和执行查找变得相当容易。数据库相关配置文件都在 config/database.php。
      在这个文件你可以定义所有的数据库连接,以及指定默认的数据库连接。
      默认文件中已经有所有支持的数据库系统例子了

      目前 Laravel 支持四种数据库系统: MySQL、Postgres、SQLite、以及 SQL Server

      Laravel支持读写分离配置

      我们加了两个键值到配置文件数组中: read 及 write,这样就实现了读写分离。

       ubuntu学习笔记(2)之laravel框架

      8.2 数据库简单操作

       执行 Select 查找:$results = DB::select('select * from users where id = ?', [1]);
      select 方法会返回一个 array 结果。

      执行 Insert 语法:DB::insert('insert into users (id, name) values (?, ?)', [1, 'Dayle']);

      执行 Update 语法:DB::update('update users set votes = 100 where name = ?', ['John']);

      执行 Delete 语法:DB::delete('delete from users where id=?‘,[‘1’]);
      update 和 delete 语法会返回在操作中所影响的数据个数。

      Laravel还为我们提供了更简单的数据操作“查询构造器”
      数据库查询构造器 (query builder) 提供方便、流畅的接口,用来建立及执行数据库查找语法。
      在你的应用程序里面,它可以被使用在大部分的数据库操作,而且它在所有支持的数据库
     系统上都可以执行。

     添加数据进数据表

     DB::table('users')->insert(
         ['email' => '[email protected]', 'votes' => 0]
     );
    如果数据表有自动递增的ID,可以使用 insertGetId 添加数据并返回该 ID:
    $id = DB::table('users')->insertGetId(
          ['email' => '[email protected]', 'votes' => 0]
     );

     添加多个数据进数据表
     DB::table('users')->insert([
          ['email' => '[email protected]', 'votes' => 0],
          ['email' => '[email protected]', 'votes' => 0]
      ]);

     更新数据表中的数据
      DB::table('users')
            ->where('id', 1)
            ->update(['votes' => 1]);
      自增或自减一个字段的值
      DB::table('users')->increment('votes');
      DB::table('users')->increment('votes', 5);
      DB::table('users')->decrement('votes');
      DB::table('users')->decrement('votes', 5);
      也能够同时指定其他要更新的字段:
      DB::table('users')->increment('votes', 1, ['name' => 'John']);

      删除数据表中的数据
      DB::table('users')->where('votes', '<', 100)->delete();
      删除数据表中的所有数据
      DB::table('users')->delete();
      清空数据表
      DB::table('users')->truncate();
     从数据表中取得所有的数据列
      $users = DB::table('users')->get();
      foreach ($users as $user)
      {
           var_dump($user->name);
      }

      从数据表中取得单一数据列
      $user = DB::table('users')->where('name', 'John')->first();

      从数据表中取得单一数据列的单一字段
      $name = DB::table('users')->where('name', 'John')->pluck('name');

      取得单一字段值的列表
      $roles = DB::table('roles')->lists('title');

      这个方法将会返回数据表 role 的 title 字段值的数组。你也可以通过下面的方法,为返回的数组指定自定义键值。
      $roles = DB::table('roles')->lists('title', 'name');