我在某处看过,Laravel 5中没有"MariaDB"的驱动程序,我们可以使用mysql驱动程序在Laravel 5中使用MariaDB.但即便如此,当我提供MariaDB用户名和密码时,我收到此错误.密码是"root",用户名也是"root".
SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: YES)
Run Code Online (Sandbox Code Playgroud)
有人可以指导我如何配置与Laravel 5一起使用的MariaDB.
我正在尝试使用maatwebsite 3.0导入excel文件(.xlsx).如何修复此错误
调用未定义的方法Maatwebsite\Excel\Excel :: load()
我的控制器
public function importsave(Request $request)
{
if($request->hasFile('excel'))
{
$path = $request->file('excel')->getRealPath();
$data= Excel::load($path, function($reader) {})->get();
if(!empty($data) && $data->count())
{
foreach($data->toArray() as $key=>$value)
{
if(!empty($value))
{
Employee::insert($value);
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud) 我有一些代码可以进行db调用和网络请求,我把它包装在try/catch中.问题是我永远无法捕获异常,它们似乎不是致命的例外:
try {
// make db requests and network calls
} catch (Exception $e) {
// handle exception
}
Run Code Online (Sandbox Code Playgroud)
也就是说,我遇到了以下例外情况:
[Illuminate\Database\QueryException]
[PDOException]
[InvalidArgumentException]
Run Code Online (Sandbox Code Playgroud)
有没有办法捕捉这些例外?我是否需要明确每种可能的异常对象类型(意味着我必须创建许多try/catches),或者是否有推荐的方法来捕获非致命异常?
我看了几个Laracast课程,现在我正在建立我的第一个Laravel项目.我有一些带有时间戳的Eloquent模型,用于created_at和updated_at.
为了显示正确的日期格式,Laravel有一个非常好的功能:访问器.但在每个Eloquent模型中,我现在有2个这样的函数:
public function getUpdatedAtAttribute($value) {
return Carbon::parse($value)->format('d-m-Y H:i:s');
}
public function getCreatedAtAttribute($value) {
return Carbon::parse($value)->format('d-m-Y H:i:s');
}
Run Code Online (Sandbox Code Playgroud)
这样日期将被强制显示为d-m-Y H:i:s.唯一的问题是:我不想为我创建的每个模型执行此操作..
是否有一个默认的Laravel方式/约定我可以在全球范围内执行此操作,或者我应该制作某种类型MasterModel并扩展它而不是Model?
我正在尝试实现排队,但是结果不是异步的,并且我已经应用了以下内容
config/queue.php
'default' => env('QUEUE_DRIVER', 'database'),
'connections' => [
'sync' => [
'driver' => 'sync',
],
'database' => [
'driver' => 'database',
'table' => 'jobs',
'queue' => 'default',
'expire' => 60,
],
]
Run Code Online (Sandbox Code Playgroud)
然后应用以下命令php artisan queue:table php artisan migration
然后运行
php artisan queue:listen
Run Code Online (Sandbox Code Playgroud)
这是功能
SomethingController.php
$model1 = new \App\Model1;
public function store(){
Log::debug('before dispatch');
$this->dispatch(new SendGiftCommand($model1));
Log::debug('before dispatch');
return true;
}
SendGiftCommand.php
{
Log::debug('handle');
SendGift::SendGiftAgedBased($this->model1);
sleep(4);
Log::debug('SendGiftCommand end');
}
SendGift.php
public static function SendGiftAgedBased(Model1 $model1){
Log::debug('inside SendGiftAgedBased');
}
Run Code Online (Sandbox Code Playgroud)
即使该进程已运行,但仍未同步,它会等待命令完成以返回控制器中的响应
我按此顺序搅拌日志 …
在 Laravel 中,我们可以加载具有嵌套关系的模型
User::with('posts.comments.likes')
Run Code Online (Sandbox Code Playgroud)
但是在其他地方我们如何检测是否加载了嵌套关系?有方法吗?
Model::relationLoaded() 只检测直接关系。
public function relationLoaded($key)
{
return array_key_exists($key, $this->relations);
}
Run Code Online (Sandbox Code Playgroud) 我正在使用laravel 5.1 ,我正在使用调度方法将作业推送到队列中.但有两种工作,我已经创建了两个队列,并在sqs中有两个队列.我该怎么做到这一点?
我正在使用Laravel 5.3,在模型中Post,我有一个追加属性:
/*
* toJson
*/
protected $appends = ['count'];
Run Code Online (Sandbox Code Playgroud)
而神奇的方法:
public function getCountAttribute()
{
return Offer::where('id', '=', $this->id)->count();
}
Run Code Online (Sandbox Code Playgroud)
所以,当我得到一个Post像eloquent一样的模型Post::get(),并以json为例得到返回时,我总是count在我的对象中有这个属性.
我如何指定我是否要这个或另一个附加属性?
我已经在Laravel中构建了一个应用程序,并以这种格式提供了雄辩的回复日期:2015-04-17 00:00:00.我正在向JSON发送一个特定的查询,所以我可以用D3创建一个图形,我想我希望ISO8601('1995-12-17T03:24:00')中的日期或其他一些与javascript Date()构造函数一起使用的格式.
有没有办法在Laravel端更改输出到JSON的日期格式?我不确定使用mutator是最好的方法,因为它会影响我的应用程序的其他部分的日期.
或者将JSON输出保持原样会更好,并在将日期格式传递给Date()构造函数之前使用一些javascript字符串方法来操作它?哪种方法更有效?
这是我的模型:
class Issue extends Model {
protected $fillable = [
'client_id',
'do',
'issue_advocate',
'service_number',
'issue_location',
'issue_description',
'level_of_service',
'outcome',
'referral_id',
'file_stale_date',
'date_closed',
'issue_note',
'staff_hours'
];
protected $dates = [
'do',
'date_closed',
'file_stale_date'
];
public function setDoAttribute($value)
{
$this->attributes['do'] = Carbon::createFromFormat('F j, Y', $value)->toDateString();
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的查询:
$issues = Issue::with('issuetypes')
->select(['do','level_of_service','outcome','id'])
->whereBetween('do',[$lastyear,$now])
->get()->toJson();
Run Code Online (Sandbox Code Playgroud)
而JSON我回来了:
[{"do":"2014-12-23 00:00:00","level_of_service":1,"outcome":1,"id":18995,"issuetypes":[{"id":9,"issuetype":"Non Liberty","pivot":{"issue_id":18995,"issuetype_id":9}}]}]
Run Code Online (Sandbox Code Playgroud) $schedule->call(function ()
{
error_log("Line Schedule 1:Start");
//Send Email
error_log("Line Schedule 1:End");
})->everyFiveMinutes()->name('event_name:1')->withoutOverlapping();
$schedule->call(function ()
{
error_log("Line Schedule 2:Start");
//Send Email
error_log("Line Schedule 2:End");
})->everyFiveMinutes()->name('event_name:2')->withoutOverlapping();
$schedule->call(function ()
{
error_log("Line Schedule 3:Start");
//Send Email
error_log("Line Schedule 3:End");
})->everyFiveMinutes()->name('event_name:3')->withoutOverlapping();
Run Code Online (Sandbox Code Playgroud)
我使用命令php artisan schedule运行这些schulders:运行并且我并行运行许多实例.和我的日志文件说schulder 2第二次启动,即使它之前的实例还没有完成它.
[01-Jan-2016 11:30:08 UTC] Line Schedule 1:Start
[01-Jan-2016 11:30:11 UTC] Line Schedule 2:Start
[01-Jan-2016 11:30:13 UTC] Line Schedule 3:Start
[01-Jan-2016 11:30:15 UTC] Line Schedule 1:End
[01-Jan-2016 11:30:15 UTC] Line Schedule 2:Start
[01-Jan-2016 11:30:17 UTC] Line Schedule 2:End
[01-Jan-2016 11:30:17 UTC] Line …Run Code Online (Sandbox Code Playgroud) laravel ×9
laravel-5 ×9
php ×9
eloquent ×4
laravel-5.1 ×3
queue ×2
asynchronous ×1
database ×1
excel ×1
exception ×1
json ×1
laravel-5.3 ×1
mariadb ×1