如何使用 Laravel 框架执行 MySQL 查询?
Posted
技术标签:
【中文标题】如何使用 Laravel 框架执行 MySQL 查询?【英文标题】:How can I perform MySQL queries using the Laravel framework? 【发布时间】:2015-05-02 16:54:00 【问题描述】:所以我最近研究了 Laravel 框架,就像我几个月以来一直想做的那样,到目前为止它看起来很棒,并且里面有一些非常有用的东西。
但是,我一直在尝试实际使用数据库查询,以便我可以使用真实数据,但是当我尝试这样做时,并没有取得太大的成功。
我已经配置了\config\database.php
mysql 部分,然后尝试使用DB::
,我得到的只是一个错误:
控制器中的 DB 类不存在
我已经阅读了所有文档,但一无所获
<?php namespace App\Http\Controllers;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use DB;
class SongsController extends Controller
public function getSongs()
$songs = DB::table('songs')->get();
return $songs;
查看:
<?php
foreach ($songs as $song)
var_dump($song->song);
我的mysql在\config\database.php中:
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'database' => env('DB_DATABASE', 'songs'),
'username' => env('DB_USERNAME', 'root'),
'password' => env('DB_PASSWORD', 'password'),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
],
【问题讨论】:
我们能看到一小段代码展示了这个问题吗?我想通过查看您的代码,Laravel 开发人员将能够快速说出问题所在。 你在使用 .env 文件吗? ...如果您拒绝访问 'homestead'@'localhost' 它必须设置在某个地方 不,甚至不确定那是什么,我只是想在我的系统上运行的 MySQL 和 Laravel 之间建立连接。 查看根目录下是否有 .env 文件(不是 .env.example,只是 .env)。 哦,是的,我可以看到一个 .env 文件,为什么?我应该使用它来配置我的连接而不是 \config\database.php 还是什么? 【参考方案1】:在你的 mysql 配置中:
'database' => env('DB_DATABASE', 'songs'),
它说:看看是否设置了环境变量,如果它存在于你的 .env 文件中(在你的根目录中),使用它,如果没有,使用默认的“歌曲”。
http://laravel.com/docs/5.0/configuration#environment-configuration
【讨论】:
啊,所以如果我将 .env 中的所有配置都设置为这样,它将使用 \config\database 中设置的内容吗? DB_DATABASE= DB_USERNAME= DB_PASSWORD= 它将使用一个空的数据库、用户名和密码,我认为......就像你这样做 $database = "";如果您不需要使用它,最好删除该文件:)【参考方案2】:您需要添加使用数据库;在文件的顶部。记住 Laravel5 使用命名空间。
<?php namespace App\Http\Controllers;
use DB;
【讨论】:
已经尝试过了,我得到了拒绝访问状态。 SQLSTATE[HY000] [1045] 用户 'homestead'@'localhost' 的访问被拒绝(使用密码:YES) 我认为你错误配置了 mysql(homestead 是配置文件中的默认用户/数据库)以上是关于如何使用 Laravel 框架执行 MySQL 查询?的主要内容,如果未能解决你的问题,请参考以下文章
PHP笔记-laravel框架中Eloquent ORM实现增删改查