#laravel #warnings #laravel-5.8
#laravel #предупреждения #laravel-5.8
Вопрос:
[Заголовок][1] ##Laravel 5.8
Это веб-журнал с Laravel
Я настраиваю базу данных и создаю таблицу, когда я запускаю программу, программа выдает предупреждение:
SQLSTATE [42S02]: Базовая таблица или представление не найдено: 1146 таблица ‘blog.posts’ не существует (SQL: вставить в `posts` (`title`, `content`, `updated_at`, `created_at`) значения (asdasdasdas, это сообщение в блоге поможет вам правильно использовать laravel, 2019-04-08 14:54:16, 2019-04-08 14:54:16))
config/database.php
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'unix_socket' => env('DB_SOCKET', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'prefix_indexes' => true,
'strict' => true,
'engine' => null,
'options' => extension_loaded('pdo_mysql') ? array_filter([
PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
]) : [],
];
2019_04_01_135051_create_posts_table
public function up()
{
Schema::create('posts', function (Blueprint $table) {
$table->increments('id');
$table->timestamps();
$table->string('title');
$table->text('content');
});
}
2019_04_01_134543_create_likes_table
public function up()
{
Schema::create('likes', function (Blueprint $table) {
$table->increments('id');
$table->timestamps();
});
}
2019_04_01_134543_create_tags_table
public function up()
{
Schema::create('tags', function (Blueprint $table) {
$table->increments('id');
$table->timestamps();
$table->string('name');
});
}
эта строка находится в классе Post :
protected $fillable = ['title', 'content'];
эта строка находится в postControoler.php
public function postAdminCreate(Store $session, Request $request)
{
$this->validate($request, [
'title' => 'required|min:5',
'content' => 'required|min:10'
]);
$post = new Post([
'title' => $request->input('title'),
'content' => $request->input('content')
]);
$post->save();
return redirect()->route('admin.index')->with('info', 'Post created, Title is: ' . $request->input('title'));
}
2014_10_12_000000_create_users_table
<?php
use IlluminateSupportFacadesSchema;
use IlluminateDatabaseSchemaBlueprint;
use IlluminateDatabaseMigrationsMigration;
class CreateUsersTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('title');
$table->string('content');
$table->string('email')->unique();
$table->timestamp('email_verified_at')->nullable();
$table->string('password');
$table->rememberToken();
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('users');
}
}
this is the post.blade.php in blog folder
@extends('layouts.master')
@section('content')
<div class="row">
<div class="col-md-12">
<p class="quote">{{ $post['title'] }}</p>
</div>
</div>
<div class="row">
<div class="col-md-12">
<p>{{ $post['content'] }}</p>
</div>
</div>
@endsection
Сначала я запускаю
php artisan migrate
cmd сообщает :
Migrating: 2014_10_12_000000_create_users_table
IlluminateDatabaseQueryException : SQLSTATE[42S01]: Base table or view
already exists: 1050 Table 'users' already exists (SQL: create table `users`
(`id` bigint unsigned not null auto_increment primary key, `title`
varchar(255) not null, `content` varchar(255) not null, `email` varchar(255)
not null, `email_verified_at` timestamp null, `password` varchar(255) not
null, `remember_token` varchar(100) null, `created_at` timestamp null, `updated_at` timestamp null) default character set utf8mb4 collate 'utf8mb4_unicode_ci')
at C:xampphtdocsgetting-startedvendorlaravelframeworksrcIlluminateDatabaseConnection.php:664
660| // If an exception occurs when attempting to run a query, we'll format the error
661| // message to include the bindings with SQL, which will make this exception a
662| // lot more helpful to the developer instead of just the database's errors.
663| catch (Exception $e) {
> 664| throw new QueryException(
665| $query, $this->prepareBindings($bindings), $e
666| );
667| }
668|
Exception trace:
1 PDOException::("SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'users' already exists")
C:xampphtdocsgetting-startedvendorlaravelframeworksrcIlluminateDatabaseConnection.php:458
2 PDOStatement::execute()
C:xampphtdocsgetting-startedvendorlaravelframeworksrcIlluminateDatabaseConnection.php:458
Когда я создаю сообщение и нажимаю отправить, появляется предупреждение
Как я могу это исправить?
SQLSTATE[42S02]: Базовая таблица или представление не найдено: 1146 таблица ‘blog.posts’ не существует (SQL: вставить в `posts` (`title`, `content`, `updated_at`, `created_at`) значения (asdasdasdas, это сообщение в блоге поможет вам правильно использовать laravel, 2019-04-08 14:54:16, 2019-04-08 14:54:16)) желтый»> SQLSTATE[42S02]: Базовая таблица или представление не найдено: 1146 таблица ‘blog.posts’ не существует (SQL: вставить в `posts` (`title`, `content`, `updated_at`, `created_at`) значения (asdasdasdas, это сообщение в блоге поможет вам правильно использовать laravel, 2019-04-08 14:54:16, 2019-04-08 14:54:16))
Комментарии:
1. Не решение, но попробуйте добавить это в свою модель post
protected $table = 'posts';
2. Вы запускали
php artisan migrate
?3. да, я запускаю php artisna migrate
4. попробуйте
php artisan migrate:fresh
Ответ №1:
используйте php artisan migrate:fresh
команду для переноса таблицы в базу данных заново
Ответ №2:
ServiceProvider.php
public function boot()
{
Schema::defaultStringLength(191);
if (Schema::hasTable('blogs')) {
$blog = Blog::first();
View::share('blog',$blog);
}
}
Ответ №3:
Вы можете выполнить эти шаги :
- Удалите всю таблицу из вашего
database
. - запустите
php artisan migrate
еще раз. - Контрольная
posts
таблица создана вdatabase
А теперь попробуйте.