小编Jos*_*uce的帖子

Laravel 5.5使用生产数据库整合迁移

希望我能很好地解释这一点.

我有一个Laravel应用程序,已经生产了一分钟.所以,我有一堆迁移文件,有很多变化.我想整合这些迁移文件而不会丢失数据库.

认为这会起作用的方式:

  1. 将所有生产表迁移到所需状态.
  2. 将所有迁移文件合并为所需的最少文件数.
  3. 清除迁移表.
  4. 运行迁移或填充迁移表.

我想这样做的部分原因是因为我希望公开一些服务提供商,并尽可能使用最干净的迁移设置.

困难的版本可能是:

  1. 备份或重复表.
  2. 运行迁移.
  3. 编写并运行脚本以填充"干净"表.

只是希望有一种比这更简单的方法.

编辑(来自评论):我有一个包含大约50多个迁移文件的生产数据库 - 一些小的更改,一些大的更改.如果我合并,所需的迁移数量大约为12左右.我想整合迁移文件,但仍然可以执行migrate:rollback生产 - 不是我想要的.

php mysql database-migration laravel laravel-5.5

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

EventKit不使用日历或提醒应用程序

我很好奇是否有办法使用EventKit的功能 - 创建事件,重复规则等 - 而不必实际与日历和提醒应用程序接口?

关于要求的更多细节,例如:

  1. 用户启动我的应用程序,并在那里创建一个新的事件样式条目
  2. 事件样式条目实际上不会出现在"提醒"或"日历"应用程序中
  3. 我的应用程序仍然可以访问事件样式条目及其相关选项

注意:可能/将有一个首选项选项,使创建的事件样式条目在Reminders/Calendar应用程序中可见.

基本上,为了实现使用或不使用Reminders/Calendar应用程序的能力,我不想编写两个版本的代码 - 一个使用我自己的EventKit-esque实现 - 另一个使用真正的 EventKit框架API .

macos events xcode ios eventkit

5
推荐指数
1
解决办法
525
查看次数

Laravel 5.5扩展或覆盖包控制器

Laravel 5.5在扩展(或覆盖)主应用程序外部的控制器而基本上不重写应用程序中包前端的约定是什么?

我有一个带有自己的路由和控制器的程序包。我遇到了两种情况,在其中一个控制器中重写方法将是解决问题的一种好方法。但是,我自己提出的解决方案似乎并不理想。我似乎经常不需要这些东西,因为这些软件包可以很好地发挥自己的作用。

根据要求提供的经过考虑的解决方案

选项1:我认为这是一种相对干净的方法,但是如果将来对路线进行更新,可能会导致问题,我将必须对其进行监视,并确保手动更新修改后的包含物。

  • 使路由文件成为的一部分$ php artisan vendor:publish
  • 将路线呼叫从更新Route::get('/', PackageController::class .'@index');Route::get('/', MyController::class .'@index');
  • 创建App\Http\Controllers\MyController并扩展它Vendor\Package\Controllers\PackageController
  • 覆盖public function index()MyController

选项2:使其成为软件包配置的一部分。似乎不尽理想,因为现在路由关联位于两个位置,而且我不确定是否会影响性能,以及是否会不断引用配置以便在调用路由时设置控制器。

  • 添加的字典'PackageController' => ['route_name', 'route_name']
  • 使用编辑配置MyController

Option canonical(??):确实希望有一种规范的方法来解决这个问题。或者,大多数为Laravel编写的软件包是否具有更多实用程序(我使用的大多数都是(除了正在创建的))?

php laravel php-7 laravel-5.5

5
推荐指数
0
解决办法
1580
查看次数

如何在Laravel中创建数据库模式(表)?

我是Laravel的新手.我正在尝试在Laravel中创建数据库.我尝试在控制台中:

Schema::create
Run Code Online (Sandbox Code Playgroud)

但它正在给'命令未找到'.我应该安装什么或如何创建数据库?

database laravel

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

PHP 7.1:从命名空间获取文件路径

我有一个项目.我需要在包中获取文件的内容.我可以用艰难的方式做到:

file_get_contents('../../vendor/{vendor}/{package}/src/
    {directory}/{sub-directory}/class.php');
Run Code Online (Sandbox Code Playgroud)

或者,我可以做到"简单的方式",我很确定这是不可能的.

namespace MyVendor\MyProject;

use TheirVendor\TheirPackage\TheirClass;

class MyObject
{
    public function myFunction()
    {
        return file_get_contents(TheirClass);
    }
}
Run Code Online (Sandbox Code Playgroud)

这可能(或类似的东西)可能吗?

php php-7.1

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

Laravel 5.2 验证请求“不在”不返回自定义消息

我正在 Laravel 5.2 中设置一个请求类来处理表单。我在表单中有一个选择菜单。选择菜单中的第一个元素类似于以下内容:

<select name="unique-id">
    <option value="none">Select one...</option>
    <option value="real">Real</option>
</select>
Run Code Online (Sandbox Code Playgroud)

默认情况下,选择菜单为“无” - 提交选择此选项的表单会导致错误;所以,我有以下几点:

class SomeRequest extends Request
{
    ...

    public function rules()
    {
        return [
            'unique-id' => 'not-in:none', // error is caught
            'required-field' => 'required' // error is caught
        ];
    }

    ...
}
Run Code Online (Sandbox Code Playgroud)

“not-in”规则被请求处理程序捕获并返回错误;但是,默认错误消息说,“所选的唯一 ID 无效”——显然不是最人性化的错误消息。所以,我创建了以下内容:

class SomeRequest extends Request
{
    ...

    public function messages()
    {
        return [
            'unique-id.not-in' => 'Must select a valid XXXX.', // does not return
            'required-field.required' => 'Verifying custom errors.' // returns
        ];
    } …
Run Code Online (Sandbox Code Playgroud)

php laravel laravel-5 laravel-5.2

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