当前位置: 首页>>代码示例>>PHP>>正文


PHP Revision::insert方法代码示例

本文整理汇总了PHP中Revision::insert方法的典型用法代码示例。如果您正苦于以下问题:PHP Revision::insert方法的具体用法?PHP Revision::insert怎么用?PHP Revision::insert使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Revision的用法示例。


在下文中一共展示了Revision::insert方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: postRevision

 /**
  * Creates a new paste revision
  *
  * @return \Illuminate\Support\Facades\Redirect
  */
 public function postRevision()
 {
     $oldId = Input::get('id');
     // First and foremost, validate the ID of the revision
     if (Session::get('paste.revision') != $oldId) {
         App::abort(401);
         // Unauthorized
     }
     // Define validation rules. We don't validate the title and language
     // here as we don't allow to change that for a revision. Instead, we
     // will use the data from the old paste
     $validator = Validator::make(Input::all(), array('data' => 'required|auth', 'expire' => 'in:' . Paste::getExpiration('create', TRUE)));
     // Generate anti-spam modules
     $antispam = Antispam::make('paste', 'data');
     // Run validations
     $resultValidation = $validator->passes();
     // Execute antispam services
     $resultAntispam = $antispam->passes();
     if ($resultValidation and $resultAntispam) {
         // Get the paste being revised
         $oldPaste = Paste::findOrFail($oldId);
         // If the old paste's content is same as the revision,
         // we simply redirect to the old paste itself
         if (crc32($oldPaste->data) == crc32(Input::get('data'))) {
             return Redirect::to($oldPaste->urlkey);
         }
         // We use some data from the old paste
         $data = array('project' => $oldPaste->project, 'title' => $oldPaste->title, 'language' => $oldPaste->language, 'private' => NULL, 'password' => NULL, 'attachment' => NULL);
         // Merge it with the input to override the values the user submitted
         Input::merge($data);
         // All set, create the new revision
         $newPaste = Paste::createNew('web', Input::all());
         // We now need to update the revisions table. One entry will be
         // created for this revision. We will also create entries for
         // any past revisions and link it to this new paste
         $revData = array(array('paste_id' => $newPaste->id, 'urlkey' => $oldPaste->urlkey, 'author' => $oldPaste->author, 'timestamp' => $oldPaste->timestamp));
         foreach ($oldPaste->revisions as $revision) {
             $revData[] = array('paste_id' => $newPaste->id, 'urlkey' => $revision->urlkey, 'author' => $revision->author, 'timestamp' => $revision->timestamp);
         }
         // Now insert this batch data to the revisions table
         Revision::insert($revData);
         // Whoa, finally we are done, take the user to the shiny new
         // paste. Since this is a public paste, we don't need the url
         // hash or password shebang
         return Redirect::to($newPaste->urlkey);
     } else {
         // Set the error message as flashdata
         if (!$resultValidation) {
             Session::flash('messages.error', $validator->messages()->all('<p>:message</p>'));
         } else {
             if (!$resultAntispam) {
                 Session::flash('messages.error', $antispam->message());
             }
         }
     }
     return Redirect::to(URL::previous())->withInput();
 }
开发者ID:carriercomm,项目名称:sticky-notes,代码行数:62,代码来源:CreateController.php

示例2: testGetDiff

 /**
  * Tests the getDiff method of the controller
  */
 public function testGetDiff()
 {
     $this->initTestStep();
     $oldPaste = Paste::createNew('web', array('title' => 'UnitTest::Title', 'data' => 'UnitTest::Data', 'language' => 'text'));
     $newPaste = Paste::createNew('web', array('title' => 'UnitTest::Title', 'data' => 'UnitTest::Revision', 'language' => 'text'));
     Revision::insert(array('paste_id' => $newPaste->id, 'urlkey' => $oldPaste->urlkey, 'author' => $oldPaste->author, 'timestamp' => $oldPaste->timestamp));
     $this->call('GET', "diff/{$oldPaste->urlkey}/{$newPaste->urlkey}");
     $this->assertResponseOk();
 }
开发者ID:carriercomm,项目名称:sticky-notes,代码行数:12,代码来源:ShowTest.php


注:本文中的Revision::insert方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。