php - Laravel:找不到 SQLite 数据库
问题描述
我总是得到一个错误说:
数据库(/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'
);
}
个人控制器.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');
}
}
我完全不知道如何解决上述问题。任何知道该怎么做的人请帮助我。如果您想了解更多信息,请告诉我。
谢谢你。
解决方案
就像用户 @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
.
请参阅 SQLite 的 Laravel 文档:
推荐阅读
- json - SwiftUI:尝试加载本地 JSON 数据时,Canvas 出现预览错误
- hadoop - 尝试将文件放入 hadoop hdfs 时出错
- python - 真实世界的 Gevent 和 Asyncio 用例
- rx-java - RxJava2 中是否有任何函数,例如不期望来自两个观察者的事件的 CombineLatest?
- c# - 如何正确格式化 ListViews 的字符串
- .net - 如何将属性选项卡添加到 Visual Studio 2019 中的类库项目?
- python-3.x - PC 上的大量数据?
- ios - Apple Watch 手势检测
- amazon-web-services - AWS S3 使用 aws lambda 跨多个账户复制并触发内部 lambda 复制到其他存储桶
- java - com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException 在 JsonObject 中存储资源输出时