本文整理匯總了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();
}
示例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();
}