小编jed*_*ylo的帖子

如何在Laravel 5中配置MariaDB?

我在某处看过,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.

database mariadb

8
推荐指数
1
解决办法
2万
查看次数

调用未定义的方法Maatwebsite\Excel\Excel :: load()

我正在尝试使用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)

php excel laravel laravel-5 maatwebsite-excel

8
推荐指数
5
解决办法
3万
查看次数

如何正确捕获PHP异常(Laravel 5.1)

我有一些代码可以进行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),或者是否有推荐的方法来捕获非致命异常?

php exception laravel eloquent laravel-5

7
推荐指数
1
解决办法
8920
查看次数

Laravel 5全球数据访问器

我看了几个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

php laravel eloquent laravel-5

7
推荐指数
2
解决办法
4133
查看次数

Laravel中的异步队列

我正在尝试实现排队,但是结果不是异步的,并且我已经应用了以下内容

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)

即使该进程已运行,但仍未同步,它会等待命令完成以返回控制器中的响应

我按此顺序搅拌日志 …

php queue asynchronous laravel laravel-5

7
推荐指数
2
解决办法
5721
查看次数

Laravel:检测是否加载了嵌套关系

在 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)

php laravel eloquent laravel-5 laravel-5.1

7
推荐指数
1
解决办法
2620
查看次数

Laravel使用不同的队列连接来分派作业

我正在使用laravel 5.1 ,我正在使用调度方法将作业推送到队列中.但有两种工作,我已经创建了两个队列,并在sqs中有两个队列.我该怎么做到这一点?

php queue laravel laravel-5 laravel-5.1

7
推荐指数
2
解决办法
6928
查看次数

Laravel获得没有追加属性的模型

我正在使用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在我的对象中有这个属性.

我如何指定我是否要这个或另一个附加属性?

php laravel eloquent laravel-5 laravel-5.3

7
推荐指数
1
解决办法
3461
查看次数

如何将Laravel输出的日期格式更改为JSON?

我已经在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)

php json laravel laravel-5

6
推荐指数
3
解决办法
1万
查看次数

withoutOverlapping()在Laravel Schedule中不起作用

$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)

php job-scheduling laravel laravel-5 laravel-5.1

6
推荐指数
2
解决办法
5528
查看次数