Skip to main content

Database connection in Laravel

Database connection in Laravel

Database connection establishing and getting data from DB

In these notes, you can understand establishing a DB connection and retrieving data from DB.
Last previous notes, we made blog post data by hard coding, now fetching data from MySQL database.
Here I have created a MySQL database and table for blogs.

Now I am going to add MySQL database configuration in Laravel. As we discussed on early notes we should config DB in .ENV file


DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=mylaravel
DB_USERNAME=root
DB_PASSWORD=
After this setup, I need to write a method in my controller to fetch data from DB.

Example 1

Getting data from DB, This is simple getting data from DB. I used use DB; class and I written direct query.


<?php

	namespace App\Http\Controllers;

	use Illuminate\Http\Request;
	use DB;

	class BlogController extends Controller
	{
		/* Below as example of getting data from DB */
		public function blog_db_example($slug)
		{

			$post = DB::table('tbl_blogs')->where('slug',$slug)->first();

			if(!$post)
			{
				abort(404);
			}

			return view('blog_from_db',["blog"=>$post]);
		}
	}

Example 2

Using models, Laravel has Eloquent feature.

You can create a model using PHP artisan commands

php artisan make:model model_name

<?php

	namespace App\Http\Controllers;

	use Illuminate\Http\Request;
	use App\Models\Tbl_blogs;

	class BlogController extends Controller
	{

		 /* Below as example of getting data from Model */
		 public function blog_db_model_example($slug)
		 {
			return view('blog_from_db',[
				"blog" => Tbl_blogs::where('slug',$slug)->firstOrFail()
				]);
		 }
	}
In my view, I simple print the blog_desc


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <h3>Welcome to Blog posts from laravel</h3>
    <p>{{$blog->blog_desc}}</p>
</body>
</html>
and in web.php


/**
 * Example of bring blog data from db
 */
Route::get('blog_from_db_example/{post}','App\Http\Controllers\BlogController@blog_db_example');

/**
 * Example of bring blog data from db
 */
Route::get('blog_from_model_db_example/{post}','App\Http\Controllers\BlogController@blog_db_model_example');
Result same as we expected

Comments

Popular posts from this blog

Data Types in Python

Data Types  In C# or Java, You need to declare a variable specify them integer, string, and decimal. But in Python no need to specify. We can declare variables like Example: C# or Java int age = 28; string Name = "Siddhu"; Example: Python age = 28 Name = "Siddhu" So, you don't need to declare variable types in python. This is an advantage in Python, But still have few Disadvantages too. Example: In my Python function def add_numbers(x,y): print(x+y) add_numbers(20,50) //Output: 70 add_numbers(20,"Something") //Error:"Traceback (most recent call last): File "C:/Users/siddhartha.e/PycharmProjects/siddhu-py/my1stpycode.py", line 8, in add_numbers(50,"Something") File "C:/Users/siddhartha.e/PycharmProjects/siddhu-py/my1stpycode.py", line 4, in add_numbers print(a + b) TypeError: unsupported operand type(s) for +: 'int' and 'str'" ...

Database and Migrations

Database and Migrations You can config Database in the .env file. By default, Laravel has MySQL configuration. For example, I configured my details DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=Laravel_tutorials DB_USERNAME=root DB_PASSWORD= So how it connects the database, In your root folder config/database.php file will read the .env file configuration. Migrations: Migrations are most likely a version control for your database. Advantages You can easily allow your team to modify database schema and share to everyone in the application No headache to add a new column in the database manually. This migration will help all teammates into one path. Now check with artisan command php artisan migrate php artisan migrate This command will create basic users,password_resets and migrations tables. Here migrations table will track of all migrates You can undo previous migration using rollback command php artisan ...

Laravel form validations

 Laravel Validations: List of types "first_name" => 'required|alpha:ascii|min:3|max:100',// alpha:ascii (only accepts a-z) "middle_name" => 'string', "last_name" => 'required|string', "email" => 'required|email|unique:users,email', "password" => 'required|string|confirmed', "sex" => 'required|string', "phone_no" => 'required|string', "account_type" => 'required|string', "dob" => 'required|date_format:d-m-Y', // date with format "nationality" => 'required|string', "company" => 'required|string', "company_sector" => 'required|string', "company_address" => 'required|string' "bank_account_no" => 'required|min_digits:3|max_digits:5', "role" => 'required|in:admin,editor,viewer', ...