我们有一堆SQS工作,我们使用Laravel来监视和处理php artisan queue:listen.
定期,有几分钟的短暂和SQS超时.发生这种情况时,请queue:listen使用以下消息中止:
[Symfony\Component\Process\Exception\ProcessTimedOutException]
The process "php artisan queue:work
--queue="https://sqs.us-west-2.amazonaws.com/*******/queue"
--delay=0 --memory=128 --sleep=3 --tries=0 -env=production"
exceeded the timeout of 60 seconds.
Run Code Online (Sandbox Code Playgroud)
我已经尝试过处理异常app/start/global.php,或者app/start/artisan.php:
App::error(function(Symfony\Component\Process\Exception\ProcessTimedOutException $exception) {
// do nothing
});
Run Code Online (Sandbox Code Playgroud)
不幸的是,异常仍然发生,我queue:listen仍然死了.
如何捕获此异常并忽略它以进行重试?
我遇到了很多问题,我似乎无法找到解决方案.
昨天,我在Laravel的一个流浪盒上完成了一些工作.当我关闭计算机时,登录功能正常.
今天打开一切,我发现会议不再有效.
我已经尝试了所有我能想到的但是我现在无法登录并且闪存数据不起作用.
每个页面加载一个新会话被创建 - 例如使用本机驱动程序,如果我登录,它会创建两个会话 - 一个用于登录页面,一个用于发布的登录页面.
如果我使用数据库驱动程序,我会得到相同的结果.每次我点击登录,我都会得到另外两行会话数据
我不知道cookie驱动程序发生了什么,但我已经尝试过它并没有用.
我已经尝试过使用Chrome和IE浏览器,但都不会登录.我已经尝试多次删除存储文件夹的内容,并在浏览器端清空cookie.我确实认为它可能与vm和本地机器上的时间不同有关,但它们是同步的.
可能导致这种情况的任何想法?以前有人遇到过这个问题吗?
编辑:我现在也重新创建了虚拟机,问题仍然存在
第二次编辑:我现在从头开始使用具有相同结果的digitalocean VPS.
我已经删除了我的路径文件中的所有内容,现在它的全部内容如下
<?php
Route::get('/sess/set/{value}', function($value) {
Session::set('testv', $value);
Return 'Set ' . $value . ' - ' . Session::get('testv');
});
Route::get('/sess/get', function() {
Return 'Get ' . Session::get('testv');
});
Run Code Online (Sandbox Code Playgroud)
我访问了第一页,它显示了我在会话中输入的任何价值.点击第二页,您只获得没有任何会话值的"获取"部分.
session_attributes总是有一个_token字段,我已经尝试更改会话和域的名称,仍然无法让会话工作.
edit3:对于遇到此问题的人,我从未发现过这个问题.我开始了一个全新的项目,复制了我的控制器和视图,重新创建了我的路径文件,现在一切正常 - 尽管我有一半期待明天更新这篇文章,说它再次被打破!
我有一个包含枚举字段的表
CREATE TABLE `user_status` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`values` enum('on', 'off'),
PRIMARY KEY (`id`),
) ENGINE=InnoDB;
Run Code Online (Sandbox Code Playgroud)
如何创建迁移以向枚举字段添加值?
{{ Form::text('username', Input::old('username')) }}
Run Code Online (Sandbox Code Playgroud)
这是我的代码,我想在文本框中添加Username作为占位符.我已经在项目中使用了bootstrap.
我试着用这个例子
{{ Form::text('username', 'Username', Input::old('username')) }}
Run Code Online (Sandbox Code Playgroud)
但是它提供了一个需要删除的默认值,然后用户必须输入他的值.我想要它在Twitter.com等上显示的内容.一旦用户输入内容,它就会被删除.
我正在从Laravel 3升级到Laravel 4.我的应用程序有一些仅支持AJAX的表单,它们呈现在客户端(即没有服务器端视图).因此,我没有使用withErrors()方法将验证错误传递给视图,而是将验证错误对象作为JSON结构返回给客户端.
在Laravel 3中,我有这个:
$validation = Validator::make(Input::all(), $rules);
if($validation->fails())
{
return json_encode($validation->errors);
}
//else handle task
Run Code Online (Sandbox Code Playgroud)
但在Laravel 4中,错误消息受到保护:
$validation = Validator::make(Input::all(), $rules);
if($validation->fails())
{
var_dump($validation->messages());
return json_encode($validation->messages());
}
//else handle task
Run Code Online (Sandbox Code Playgroud)
var_dump($ validation-> messages())返回:
object(Illuminate\Support\MessageBag)[333]
protected 'messages' =>
array (size=1)
'delete_confirm_password' =>
array (size=1)
0 => string 'The delete confirm password field is required.' (length=46)
protected 'format' => string ':message' (length=8)
Run Code Online (Sandbox Code Playgroud)
json_encode($ validation-> messages)返回
{}
Run Code Online (Sandbox Code Playgroud)
问题:如何在Laravel 4中将所有字段的所有验证错误消息作为JSON结构返回?
我在Laravel 4中有一个通过POST方法发送文本文件的表单.然而,在Controller中,我无法弄清楚如何获取其内容以便将其放入DB中的BLOB字段.
Laravel的文档和我在网上找到的所有帖子总是展示如何使用该->move()方法将内容保存到文件中.
这是我在Controller中的代码:
$book = Books::find($id);
$file = Input::file('summary'); // get the file user sent via POST
$book->SummaryText = $file->getContent(); <---- this is the method I am searching for...
$book->save(); // save the summary text into the DB
Run Code Online (Sandbox Code Playgroud)
(SummaryText是我的数据库表上的MEDIUMTEXT).
那么,如何在Laravel 4.1中获取文件内容,而不必将其保存到文件中?那可能吗?
我很困惑->get()在Laravel的时候......
EG DB::table('users')->find(1)不需要 - > get()来检索结果,也不需要User::find(1)
laravel文档说"...使用get或first方法执行查询......"
我已经阅读了Fluent Query Builder和Eloquent文档但是不明白何时需要使用get()...
谢谢您的帮助 
当我在终端中运行php artisan migrate时,当确实没有任何迁移时,会导致"无法迁移".
当我Artisan::call('migrate')在代码中使用(在自定义Artisan命令中使用它)时,这不会返回任何消息.它只是执行代码而没有任何反馈.
如果我vardump()是Artisan::call方法的结果,它只返回一个int(0)
是否有可能得到Artisan调用方法的响应?
我是Stackoverflow和Laravel 4的新手,我试图通过jquery ajax提交表单.我serializeArray()表单并使用json提交它.在laravel中,在检查提交的csrf令牌的路径中,转到我的控制器进行过程输入.当_token输入与serializeArray()一样在数组中时,csrf检查不起作用.我必须得到_token值并提交作为单独的ajax数据.我想知道是否有办法告诉csrf过滤器哪里运行检查输入数组的hte字段_token并使用它?这是我的代码:
routes.php文件
Route::post('searchAjax', array('before' => 'csrf',
'uses' => 'SearchController@searchAjax'));
Run Code Online (Sandbox Code Playgroud)
这是我想要读取数组[0] ['_ token]的地方,但我不知道如何告诉它这样做.
index.js
var form = $('#search').serializeArray();
var token = $('#search > input[name="_token"]').val();
$.ajax({
type: 'post',
url: 'searchAjax',
dataType: 'json',
data: { _token: token, form: form },
success: function(data) {
for(var key in data)
{
//alert(key)
}
//alert(data.message);
}
});
Run Code Online (Sandbox Code Playgroud)
我想在ajax调用中删除{_token:token,form:form},并且只有'form',它已经是一个带有_token的数组.这是html:
<form id="search" class="form-horizontal" accept-charset="UTF-8" action="http://testing:998/search" method="POST">
<input type="hidden" value="6GBbv9LmnOdL8UcOsm8DDJ4Bfi6eGcQRlC9SPdL4" name="_token">
<div class="control-group">
<label class="control-label" for="title">Book Titles</label>
<div class="controls">
<input id="title" class="input" type="text" value="click to search book titles" …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用相应的控制器方法创建一个表单,该方法将新记录添加到数据库中.Laravel版本是4.1
应用/视图/ projects.blade.php
<tr>
{{Form::open(array('action' => 'ProjectController@createProject', 'method' => 'post'))}}
<td>{{Form::text('project_number')}}</td>
<td>{{Form::text('title')}}</td>
<td>{{Form::text('client')}}</td>
<td>{{Form::text('comment')}}</td>
<td>
{{Form::file('xmlfile')}}<br />
{{Form::submit('Hinzufügen',array('class' => 'blue'))}}
</td>
{{ Form::close() }}
</tr>
Run Code Online (Sandbox Code Playgroud)
应用程序/控制器/ ProjectController
<?php
class ProjectController extends BaseController {
public function listProjects(){
$projects = Project::all();
return View::make('projects',array('projects' => $projects));
}
public function createProject(){
/* handling the form data later
.
.
.
*/
return "Hello";
}
}
?>
Run Code Online (Sandbox Code Playgroud)
routes.php文件
// Project Routes
Route::get('/projects', array('as' => 'listProjects', 'uses' => 'ProjectController@listProjects'));
Route::get('/projects/{id}', array('as' => 'actionProject', 'uses' => 'ProjectController@actionProject')); …Run Code Online (Sandbox Code Playgroud)