小编Krz*_*ski的帖子

在Laravel迁移中删除外键

我在从Laravel应用程序中删除一些外键时遇到问题.问题是当我尝试回滚迁移时:

php artisan migrate:rollback
Run Code Online (Sandbox Code Playgroud)

我不知道为什么我在控制台中有错误:

[Illuminate\Database\QueryException] SQLSTATE [42000]:语法错误或访问冲突:1091无法DROP'rope_user_user_id_foreign'; 检查列/密钥是否存在(SQL:alter table role_userdrop foreign key role_user_user_id_foreign)

[Doctrine\DBAL\Driver\PDOException] SQLSTATE [42000]:语法错误或访问冲突:1091无法DROP'rope_user_user_id_foreign'; 检查列/键是否存在

[PDOException] SQLSTATE [42000]:语法错误或访问冲突:1091无法DROP'rope_user_user_id_foreign'; 检查列/键是否存在

下面我展示了我的迁移类:

class UpdateRoleUserTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        schema::table('role_user',function(Blueprint $table){


            $table->foreign('user_id')->references('id')->on('users');
            $table->foreign('role_id')->references('id')->on('roles');

        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::table('role_user', function (Blueprint $table) {
        $table->dropForeign('role_user_user_id_foreign');
        $table->dropForeign('role_user_role_id_foreign');

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

我的数据库表已由迁移类创建:

class CreateRoleUserTable extends Migration
{ …
Run Code Online (Sandbox Code Playgroud)

migration laravel

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

放大日历期间无效的CSS样式

我有带有事件日历的HTML代码。日历如下: 日历

我遇到了一些问题,因为当我尝试使用Ctrl+滚动鼠标缩放日历时,然后使用缩放会出现问题。例如,在谷歌浏览器和Mozilla Firefox中缩放150%(在其他情况下也是如此),则有一个宽度较小的附加列。可以在此处的图中看到:缩放日历

我的日历的HTML结构如下:

<h2>January 2016</h2>
<ul class="weekdays">
<li>Sun
</li>
<li>Mon
</li>
<li>Tue
</li>
<li>Wed
</li>
<li>Thu
</li>
<li>Fri
</li>
<li>Sat
</li>
</ul><ul>
    <li class="fill">&nbsp;
    </li>
    <li class="fill">&nbsp;
    </li>
    <li class="fill">&nbsp;
    </li>
    <li class="fill">&nbsp;
    </li>
    <li class="fill">&nbsp;
    </li>
    <li class="">
        <strong>01</strong>
        <a href="view.php?event_id=1">New Year's Day</a>
    </li>
    <li class="">
        <strong>02</strong>
    </li>
</ul>
<ul>
    <li class="">
        <strong>03</strong>
    </li>
    <li class="">
        <strong>04</strong>
    </li>
    <li class="">
        <strong>05</strong>
    </li>
    <li class="">
        <strong>06</strong>
    </li>
    <li class="">
        <strong>07</strong>
    </li>
    <li class="">
        <strong>08</strong>
    </li> …
Run Code Online (Sandbox Code Playgroud)

html css

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

如果我没有/无法使用 DI 注入服务,如何直接从容器获取服务?

我有一部分代码,通过依赖注入注入两个$checker服务$paginator。它工作完美:

public function index(Request $request, Paginator $paginator, Checker $checker)
    {
        $result = ['a', 'b', 'c', 'd', 'e', 'f', 'g'];
        $partialResult = $paginator->getPartial($result, 0, 3);
        $checker->isValid('A');
        var_dump("test");
        die;
    }
Run Code Online (Sandbox Code Playgroud)

文件配置如下services.yaml

   paginator:
        public: true
        class: 'App\Helper\Paginator'

    checker:
        public: true
        class: 'App\Helper\Checker'
        arguments:
         $paginator: '@paginator'
Run Code Online (Sandbox Code Playgroud)

但由于某些原因我想通过方法注入服务:

$checker = $this->container->get('checker');
Run Code Online (Sandbox Code Playgroud)

但这不起作用。在以前的版本中,Symfony 就像 3.4 一样。

我收到错误:

找不到服务“检查器”:事件虽然存在于应用程序的容器中,但“App\Controller\DefaultController”内的容器是一个较小的服务定位器,只知道“http_kernel”、“parameter_bag”、“request_stack”、“router” ”、“会话”和“树枝”服务。尝试使用依赖注入来代替。

我应该如何解决这个问题?

php dependency-injection service-locator symfony symfony4

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

从laravel 5.4更新laravel到laravel 5.5

我正在尝试将5.4版本的laravel更新到5.5.我已经通过laravel指南完成了所有工作:https://laravel.com/docs/master/upgrade

当我尝试使用命令时:

composer update
Run Code Online (Sandbox Code Playgroud)

结果是:

Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - The requested package laravel/framework 5.5.* is satisfiable by laravel/framework[5.5.x-dev] but these conflict with your requirements or minimum-stability.
Run Code Online (Sandbox Code Playgroud)

下面我展示了composer.json文件:

{
    "name": "laravel/laravel",
    "description": "The Laravel Framework.",
    "keywords": ["framework", "laravel"],
    "license": "MIT",
    "type": "project",
    "require": {
        "php": ">=5.6.4",
        "doctrine/dbal": "^2.5",
        "intervention/image": "^2.3",
        "laravel/framework": "5.5.*",
        "laravel/tinker": "~1.0",
        "laravelcollective/html": "^5.4.0", …
Run Code Online (Sandbox Code Playgroud)

laravel composer-php

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