Версия stardard-SQL с использованием логической логики :
SELECT company_name
, COUNT(action = 'EMAIL' OR NULL) AS "Email"
, COUNT(action = 'PRINT' AND pagecount = 1 OR NULL) AS "Print 1 pages"
, COUNT(action = 'PRINT' AND pagecount = 2 OR NULL) AS "Print 2 pages"
, COUNT(action = 'PRINT' AND pagecount = 3 OR NULL) AS "Print 3 pages"
FROM tbl
GROUP BY company_name;
Как?
TRUE OR NULL
дает TRUE
. FALSE OR NULL
дает NULL
. NULL OR NULL
дает NULL
. И COUNT
учитывает только ненулевые значения. Вуаля.
Я понял это :) Если бы случайно файл .env:)
Есть ли какие-либо изменения в схемах?
Не должно работать:
public function up()
{
// Create table with columns
Schema::create('users', function($table) {
$table->increments('id');
$table->string('username');
$table->string(Hash::make('password'));
$table->string('firstname');
$table->string('lastname');
$table->string('email')
$table->string('role');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
// Insert table to database
Schema::drop('users');
}
У меня такая же проблема после создания проекта laravel. Команда аутентификации выполняется успешно.
php artisan make:auth
Но когда я пытаюсь зарегистрироваться или войти, я получил ту же ошибку. Я запускаю следующую команду
php artisan config:clear
, затем остановил приложение laravel, а также мой сервер. после перезапуска моего приложения larvel и сервера все было в порядке.
Практически, когда вы используете сервер localhost, например xampp, вы создаете базу данных вручную «homestead», такие ошибки связаны с отсутствием аргументов базы данных. 100% процентов опробовали его и увидели
, набрав ваш cmd и введите:
create database homestead;
Вносить изменения в файл database.php в ** config> local> database.php, а не изменять config> файл database.php.
надеюсь, что он будет работать;)
Попробуйте проверить файл «.env» в корневом каталоге. Эти значения берутся первыми. Ваши данные - это только значения по умолчанию, если в файле .env нет данных.
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=Your_Database_Name
DB_USERNAME=Your_UserName
DB_PASSWORD=Your_Password
Я попытался внести изменения в файл database.php, присутствующий в папке config, он выглядит примерно так:
'default' => 'mysql',
....
...
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'database' => env('DB_DATABASE', 'sample'),
'username' => env('DB_USERNAME', 'root'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
],
Я не использую какую-либо виртуальную машину, я использую свой локальный компьютер с пользователем базы данных как root и password null.
Я также изменил файл .env, и он выглядит примерно так:
APP_ENV=local
APP_DEBUG=true
APP_KEY=zLzPMzs5W4FNNuguTmbG8M0iFqhIVnsP
DB_HOST=localhost
DB_DATABASE=sample
DB_USERNAME=root
DB_PASSWORD=null
CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync
MAIL_DRIVER=smtp
MAIL_HOST=mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
Даже после выполнения всех изменений, когда я пытаюсь зарегистрироваться используя регистрационную форму, которая поставляется с laravel, я пытаюсь добавить пользователя в свою базу данных. Я получаю следующую ошибку: [gg]
После выполнения всех изменений Я очистил кеш и снова загрузил его, и теперь он работает для меня! если любой из них также сталкивается с той же проблемой, просто запустите следующие команды
php artisan cache:clear
php artisan config:cache
Пробовал все решения здесь, но не работал для меня
Это работало с первой попытки:
Если вы используете веб-сервер по умолчанию PHP (например,
blockquote>php artisan serve
), вы должны перезапустить свой сервер после изменения значений файла.env
.Я нашел это решение здесь laravel.io (Прочтите решение Byjml)