Você está aqui: Laravel ::: Laravel + MySQL ::: Passos Iniciais |
Como efetuar uma conexão Laravel + MySQL e testá-la a partir de uma rota Route ou de um controllerQuantidade de visualizações: 4564 vezes |
Já sabemos que o banco de dados MySQL, ou MariaDB, é um dos bancos open source mais usados. Por isso, a maioria das aplicações PHP e Laravel fazem uso desse banco. Nesta dica mostrarei como configurar uma conexão Laravel 8 + MySQL e depois testar a conexão a partir de uma Route e de um controller. Comece localizando o arquivo .env na raiz do seu projeto (cuidado: se sua versão do Laravel não for 8, pode ser que este arquivo esteja localizado em outro local). Abra este arquivo no seu editor de texto favorito (caso não saiba como abrir o arquivo .env, use a opção File -> Open File do Visual Code da Microsoft) e localize as linhas abaixo: DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=laravel Encontrou as linhas mencionadas? Agora altere-as para as definições abaixo: DB_CONNECTION=mysql DB_HOST=localhost DB_PORT=3306 DB_DATABASE=loja DB_USERNAME=root Note que aqui eu defini o nome da base de dados como sendo "loja". É claro que os parâmetros de conexão Laravel + MySQL podem variar do meu exemplo para o seu. Agora vamos testar essa conexão a partir de uma Route. Vá até o diretório C:\xampp\htdocs\loja\routes e abra o arquivo web.php. Crie uma nova rota com o código abaixo: <?php use Illuminate\Support\Facades\Route; Route::get('listar', function(){ try{ // vamos tentar obter o PDO da conexão $pdo = DB::connection()->getPdo(); return "Conectado com sucesso à base de dados: " . DB::connection()->getDatabaseName(); Se a conexão foi efetuada com sucesso você verá a mensagem: Conectado com sucesso à base de dados: loja Vários autores gostam de testar a conexão disparando comandos SQL ou até mesmo criando models e tentando preechê-los a partir de uma tabela no banco de dados. Tudo isso é válido. No entanto, o que queremos aqui é testar a conexão com a base de dados MySQL, só isso. Assim, uma das melhores formas é tentar obter um PDO (PHP Data Object) a partir da conexão. Veja que usamos o método DB::connection()->getPdo() para esta finalidade. Isso não quer dizer que vamos usar PDO no Laravel. Longe disso. A intenção é só verificar se a conexão realmente funcionou. Usei um bloco try...catch para mostrar uma mensagem de erro caso a conexão não fosse bem sucedida, por exemplo, se o nome da base de dados estivesse errada, um erro do tipo: Erro ao conectar: PDOException: SQLSTATE[HY000] [1049] Unknown database 'loja' seria retornado. Veja agora como fazer esse teste a partir de um controller: <?php namespace App\Http\Controllers; use Illuminate\Support\Facades\DB; class ClienteController extends Controller{ // vamos obter o objeto Request public function novo(){ try{ // vamos tentar obter o PDO da conexão $pdo = DB::connection()->getPdo(); return "Conectado com sucesso à base de dados: " . DB::connection()->getDatabaseName(); Note que, no controller, nós precisamos referenciar Illuminate\Support\Facades\DB, coisa que não precisamos fazer na rota. E aqui está o código para a rota que chama o método novo() deste controller: <?php use Illuminate\Support\Facades\Route; use App\Http\Controllers\ClienteController; // essa rota chama o método novo() do controller // ClienteController Agora é só acessar a URL http://localhost/loja/public/novo e ver a mensagem indicando se a conexão com o banco de dados MySQL foi efetuada com sucesso ou não. |
![]() |
Veja mais Dicas e truques de Laravel |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |