• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com专业计算机教程网站
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure
您的位置:首页 > 网页设计 >AngularJS > 使用AngularJS和PHP的Laravel实现单页评论的方法

使用AngularJS和PHP的Laravel实现单页评论的方法

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-30

本文主要包含使用AngularJS和PHP的Laravel实现单页评论的方法等相关知识,希望在学习及工作中可以帮助到您

完整代码:https://github.com/scotch-io/laravel-angular-comment-app

目前,Laravel和Angular均已经成为了Web发展世界里非常著名的工具。Laravel以给PHP社区引入的伟大内容著称,Angular以其惊人的前端工具及简单著称。组合这两大框架似乎是合乎逻辑的下一步。

在我们的使用环境下,我们将使用Laravel作为后端的RESTful API,Angular作为前端,以创建一个简单的单页的评论应用。

下面是一个简单的例子,展示了如何开始使用这两种技术,所以不用害怕什么额外的数据库性的东西、如何处理子评论什么的。

我们将创建什么

这将是一个简单的单页评论应用程序:

  •     RESTful Laravel API处理获取、创建和删除评论;
  •     Angular前端负责显示我们创建的表单和评论;
  •     能够新建评论并把它添加到我们的W/O页面刷新列表;
  •     能够删除评论并把它从W/O页面刷新列表移除。

总体上,这些都是非常简单的概念。我们重点是关注Laravel与Angular如何一起协作的错综复杂关系。

2015619112536101.jpg (811×705)

Laravel后端
设置Laravel

继续设置好你的Laravel,我们将做一些基础工作使我们的后端实现评论的增删改查:

  •     创建一个数据库迁移
  •     将样本评论植入数据库
  •     为我们的API创建路由表
  •     创建一个“全部获取”路由表让Angular出来路由
  •     为评论创建一个资源控制器

准备数据库迁移

我们要一个简单的、存储评论的结构体,只需要包括内容和作者。让我们创建Laravel迁移来创建评论。

我们来运行artisan命令创建评论迁移,这样就可以在我们的数据库里建立评论表:

  php artisan migrate:make create_comments_table --create=comments

</div>

我们将使用Laravel模式构建器创建所需的“内容”和“作者”域。Laravel也会创建id和timestamps列,这样我们可以知道这条评论是什么时候添加的。以下是评论表的代码:
 

// app/database/migrations/####_##_##_######_create_comments_table.php
...
 
  /**
   * Run the migrations.
   *
   * @return void
   */
  public function up()
  {
    Schema::create('comments', function(Blueprint $table)
    {
      $table->increments('id');
 
      $table->string('text');
      $table->string('author');
 
      $table->timestamps();
    });
  }
...
</div>

确定你在“app/config/database.php”文件中用正确的凭证调整了数据库设置。现在我们运行迁移,这样就能用所需的列创建这张表:

  php artisan migrate
</div>

2015619112602586.jpg (553×168)

   评论模型

我们将用Laravel Eloquent模型与数据库进行交互。这很容易做到,让我们来创建一个模型:“app/models/Comment.php”:
 

<?php
 
// app/models/Comment.php
 
class Comment extends Eloquent {
    // let eloquent know that these attributes will be available for mass assignment
  protected $fillable = array('author', 'text'); 
}
</div>

现在有了表和模型,让我们通过Laravel Seeding向表中添加一个样本数据。
播种数据库

我们需要一些评论来测试几件事。让我们创建一个种子文件并插入三个样本评论到数据库。

创建一个文件:“app/database/seeds/CommentTableSeeder.php”,并添加以下代码:
 

<?php
// app/database/seeds/CommentTableSeeder.php
 
class CommentTableSeeder extends Seeder 
{
 
  public function run()
  {
    DB::table('comments')->delete();
 
    Comment::create(array(
      'author' => 'Chris Sevilleja',
      'text' => 'Look I am a test comment.'
    ));
 
    Comment::create(array(
      'author' => 'Nick Cerminara',
      'text' => 'This is going to be super crazy.'
    ));
 
    Comment::create(array(
      'author' => 'Holly Lloyd',
      'text' => 'I am a master of Laravel and Angular.'
    ));
  }
 
}

</div>

要调用这个播种机文件,我们要修改“app/database/seeds/DatabaseSeeder.php”并添加以下代码:
 

  // app/database/seeds/DatabaseSeeder.php
...
 
  /**
   * Run the database seeds.
   *
   * @return void
   */
  public function run()
  {
    Eloquent::unguard();
 
    $this->call('CommentTableSeeder');
    $this->command->info('Comment table seeded.');
  }
 
...
</div>

现在我们通过artisan命令来运行我们的播种机。

 php artisan db:seed
</div>

2015619112622562.jpg (536×233)

  现在我们拥有一个包含评论表的数据库、一个Eloquent模型和一些数据库样本。一天的工作还不算糟。。。但我们还远没有结束。

评论资源控制器(app/controllers/CommentController.php)

我们将使用Laravel资源控制器处理评论的API函数。因为使用Angular显示一个资源以及创建和更新表单,在没有创建和编辑函数的情况下,我们将通过artisan命令创建一个资源控制器。

让我们用artisan创建资源控制器。

  php artisan controller:make CommentController --only=index,store,destroy

</div>

对于示例应用,我们只会在资源控制器中使用这三个函数。为了扩展,你要包含所有的诸如更新、显示等函数,来实现一个更成熟的应用。

2015619112638401.jpg (918×189)

我们已经创建了控制器,就不需要创建和编辑函数啦,因为Angular,而不是Laravel会处理显示表单的工作。Laravel只负责把数据返回给前端。只为了想让事情简单化,我们也从实例应用提出了更新函数。我们将处理创建、显示和删除评论。


要回传数据,我们想以JSON形式返回数据。我们来浏览一下新建的控制器并添加相应的函数。
 

<?php
// app/controllers/CommentController.php
 
class CommentController extends \BaseController {
 
  /**
   * Send back all comments as JSON
   *
   * @return Response
   */
  public function index()
  {
    return Response::json(Comment::get());
  }
 
  /**
   * Store a newly created resource in storage.
   *
   * @return Response
   */
  public function store()
  {
    Comment::create(array(
      'author' => Input::get('author'),
      'text' => Input::get('text')
    ));
 
    return Response::json(array('success' => true));
  }
 
  /**
   * Remove the specified resource from storage.
   *
   * @param int $id
   * @return Response
   */
  public function destroy($id)
  {
    Comment::destroy($id);
 
    return Response::json(array('success' => true));
  }
 
}
</div>

你可以看到用Laravel和Eloquent处理增删改查多么容易。处理我们所需的函数简直难以置信的简单。

随着控制器的准备完成,我们后端最后要做的一件事就是路由。

我们的路由表(app/routes.php)

随着数据库的准备就绪,我们来处理Laravel应用的路由表吧。既然它有自己的路由,我们将会用到路由表发送数据给前端。我们也要给后台API提供路由表,从而可以让人访问我们的评论数据。

让我们创建Angular指向路由表。我们需要一个主页路由表和一个发送用户给Angular的“全部获取”路由表。这保证了用户无论怎样都能访问我们的网站,它们会被路由到Angular前端。

我们将以...(请击鼓)...api作为API路由表前缀。通过这种方式,如果有人想获取所有的评论,他们将使用URL:http

您可能想查找下面的文章:

相关文章

  • 2017-05-30angularjs封装bootstrap时间插件datetimepicker
  • 2017-05-30AngularJS使用angular.bootstrap完成模块手动加载的方法分析
  • 2017-05-30整理AngularJS中的一些常用指令
  • 2017-05-30浅谈angular懒加载的一些坑
  • 2017-05-30使用ionic播放轮询广告的实现方法(必看)
  • 2017-05-30走进AngularJs之过滤器(filter)详解
  • 2017-05-30angularjs中的$eval方法详解
  • 2017-05-30深入理解node exports和module.exports区别
  • 2017-05-30使用angular写一个hello world
  • 2017-05-30Angular懒加载机制刷新后无法回退的快速解决方法

文章分类

  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure

最近更新的内容

    • Angular实现跨域(搜索框的下拉列表)
    • AngularJS ng-style中使用filter
    • AngularJS ui-router (嵌套路由)实例
    • ionic AngularJS 生成二维码 扫描识别二维码
    • 基于AngularJS实现iOS8自带的计算器
    • AngularJS基础 ng-readonly 指令简单示例
    • AngularJS基础 ng-keyup 指令简单示例
    • 深入学习JavaScript的AngularJS框架中指令的使用方法
    • angularjs 中$apply,$digest,$watch详解
    • 详解AngularJS如何实现跨域请求

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有