我在从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 keyrole_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) 我有带有事件日历的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">
</li>
<li class="fill">
</li>
<li class="fill">
</li>
<li class="fill">
</li>
<li class="fill">
</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) 我有一部分代码,通过依赖注入注入两个$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” ”、“会话”和“树枝”服务。尝试使用依赖注入来代替。
我应该如何解决这个问题?
我正在尝试将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)