Reputation: 81
I always got an error saying as:
Database (/Users/yonamineakio/Desktop/laravel_portfolio/database/database.sqlite) does not exist. (SQL: PRAGMA foreign_keys = ON;)
I think I'm setting some values correctly but the error as mentioned above always occurred. Here is some files:
database.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=
Person.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');
}
}
I completely have no idea what to do for solving the above problem. Anyone who know what to do about it please help me. If you want more information, please let me know.
Thank you.
Upvotes: 1
Views: 3669
Reputation: 2003
Just like user @umefarooq commented, the problem is in your .env file.
Here's a configuration using only the relevant environment variable for 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
Make sure you run your migrations with php artisan migrate
and check that your database file exists in:
/Users/yonamineakio/Desktop/laravel_portfolio/database/database.sqlite
.
See Laravel documentation for SQLite:
Upvotes: 1