illighte\database\queryexception(2002)sqlstate[hy000][2002]没有这样的文件或目录(sql:select*from`rents`)

zengzsys  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(359)

我正在尝试将一个laravel项目连接到现有数据库。
我遵循了雄辩的典范惯例;但是,我仍然遇到以下错误:
illuminate\database\queryexception(2002)sqlstate[hy000][2002]没有这样的文件或目录(sql:select*from) rents )
这是我的密码:
网站.php

Route::get('/', [
    'uses' => 'RentsController@index'
    ]);

rentscontroller.php

<?php

namespace App\Http\Controllers;

use App\Rent;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;

class RentsController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {   
        $rents = Rent::all();
        return view('welcome', ['rents' => $rents]);
    }

    ...
}

租金.php

<?php

namespace App;
use Illuminate\Database\Eloquent\Model;

class Rent extends Model {
    protected $table = 'rents';
}

欢迎使用.blade.php

<!doctype html>
<html>
    <head>
    </head>
    <body>
        <ul>
            @foreach ($rents as $rent)
                <li>{{ $rent->title }}</li>
            @endforeach
        </ul>
    </body>
</html>
  • 有一点可能是问题所在,我在本地运行页面(php artisan serve),而数据库是真实的和在线的。这会引起问题吗?如果是的话,你知道怎么解决吗*

知道有什么问题吗?我正确设置了.env文件,因为它可以在另一个页面上工作。然而,在这一点上,它似乎无法找到'租金'表。
谢谢!!

ma8fv8wu

ma8fv8wu1#

各位,谢谢你们的帮助!
我想出来了。问题出在db\u主机上。
我在本地运行这个页面(即php artisan serve),数据库是在线的。我无法访问本地计算机上的数据库。这就是它无法连接的原因。
因此,我将它放在实际主机上,而不是db\u host=localhost或127.0.0.1。
例如:

DB_HOST=hostname_from_server
DB_PORT=3306
DB_DATABASE=database_name_on_server
DB_USERNAME=username_on_server
DB_PASSWORD=password_on_server

然后,我需要清除终端中的缓存:

php artisan config:cache
php artisan cache:clear

道具到@addweb solution pvt ltd寻求帮助!

相关问题