Laravel: база данных SQLite не найдена - PullRequest
0 голосов
/ 05 февраля 2020

Я всегда получал сообщение о том, что:

База данных (/Users/yonamineakio/Desktop/laravel_portfolio/database/database.sqlite) не существует. (SQL: PRAGMA foreign_keys = ON;)

Я думаю, что я устанавливаю некоторые значения правильно, но ошибка, как упоминалось выше, всегда возникала. Вот некоторые файлы:

база данных. php

?php

use Illuminate\Support\Str;

return [
    'default' => env('DB_CONNECTION', 'sqlite'),
    'connections' => [
        'sqlite' => [
            'driver' => 'sqlite',
            'url' => env('DATABASE_URL'),
            'database' => env('DB_DATABASE', database_path('database.sqlite')),
            'prefix' => '',
            'foreign_key_constraints' => env('DB_FOREIGN_KEYS', true),
        ]
    ]
]

.env

DB_CONNECTION=sqlite
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=/database/database.sqlite
DB_USERNAME=root
DB_PASSWORD=

Персона. php

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;
use llluminate\Database\Eloquent\Builder;

class Person extends Model
{
    protected $guarded = array('id');
    public static $rules = array(
        'name'=> 'required',
        'mail'=> 'email',
        'age'=> 'integer'
    );
}

PersonController. php

<?php

namespace App\Http\Controllers;
use App\Person;
use Illuminate\Http\Request;

class PersonController extends Controller
{
    public function index(Request $request) {
        $items = Person::all();
        $user = Auth::user();
        $params = ['user'=>$user, 'items'=>$items];
        return view('person.index', $params);
    }

    public function create(Request $request) {
        return view('person.create');
    }

    public function store(Requst $request) {
        $this->validate($request, Person::$rules);
        $person = new Person;
        $form = $request->all();
        unset($form['_token']);
        $person->fill($form)->save();
        return view('perosns');
    }

    public function show(Request $request) {
        $id = $request->id;
        $person = Person::find($id);
        return view('persons.show', ['person'=> $person]);
    }

    public function edit(Request $request) {
        $id = $requset->id;
        $person = Person::find($id);
        return view('persons', ['person' => $person]);
    }

    public function update(Reqeust $reqeuest){
        $this->validate($reqeuest, Person::$rules);
        $id = $request->id;
        $person = Person::find($id);
        $form = $request->all();
        $person->fill($form)->save();
        return redirect('/persons');
    }

    public function remove(Request $request){
        Person::find($request->id)->delete();
        return redirect('/person');
    }
}

Я совершенно не знаю, что делать для решения вышеуказанной проблемы. Любой, кто знает, что с этим делать, пожалуйста, помогите мне. Если вам нужна дополнительная информация, пожалуйста, дайте мне знать.

Спасибо.

1 Ответ

0 голосов
/ 05 февраля 2020

Как прокомментировал пользователь @umefarooq, проблема в вашем файле .env.

Вот конфигурация, в которой используется только соответствующая переменная среды для SQLite:

DB_CONNECTION=sqlite
#DB_HOST=127.0.0.1 ## Not required for SQLite
#DB_PORT=3306 ## Not required for SQLite
DB_DATABASE=/database/database.sqlite
#DB_USERNAME=root ## Not required for SQLite
#DB_PASSWORD= ## Not required for SQLite
DB_FOREIGN_KEYS=true

Убедитесь, что вы запустили ваши миграции с php artisan migrate и убедитесь, что файл вашей базы данных существует в: /Users/yonamineakio/Desktop/laravel_portfolio/database/database.sqlite.

См. Laravel документацию для SQLite:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...