Фасад
DB:
vendor\laravel\framework\src\Illuminate\Support\Facades\DB.php
<?php
namespace Illuminate\Support\Facades;
/**
* @see \Illuminate\Database\DatabaseManager
* @see \Illuminate\Database\Connection
*/
class DB extends Facade
{
protected static function getFacadeAccessor()
{
return 'db';
}
}
namespace Illuminate\Support\Facades;
/**
* @see \Illuminate\Database\DatabaseManager
* @see \Illuminate\Database\Connection
*/
class DB extends Facade
{
protected static function getFacadeAccessor()
{
return 'db';
}
}
vendor\laravel\framework\src\Illuminate\Database\DatabaseManager.php
vendor\laravel\framework\src\Illuminate\Database\DatabaseServiceProvider.php
vendor\laravel\framework\src\Illuminate\Database\Connection.php
– здесь описаны методы select, update,
insert, delete, statement.
Откроем наш файл AboutController.php
<?php
namespace App\Http\Controllers\Admin;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use DB; // доступ к фасаду БД
use Illuminate\Http\Response; // предоставим доступ к классу Response. Если мы не добавим эту строку, будет сгенерировнно сключение.
use Illuminate\Http\RedirectResponse;
class AboutController extends Controller
{
public function show() {
if(view()->exists('default.about')) {
$articles = DB::select("SELECT * FROM `articles`"); // select сразу возвращает результат выборки
dump($articles); // еще есть хелпер dd = dump + die
return view('default.about')->withTitle('Hello World');
}
abort(404);
}
}
namespace App\Http\Controllers\Admin;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use DB; // доступ к фасаду БД
use Illuminate\Http\Response; // предоставим доступ к классу Response. Если мы не добавим эту строку, будет сгенерировнно сключение.
use Illuminate\Http\RedirectResponse;
class AboutController extends Controller
{
public function show() {
if(view()->exists('default.about')) {
$articles = DB::select("SELECT * FROM `articles`"); // select сразу возвращает результат выборки
dump($articles); // еще есть хелпер dd = dump + die
return view('default.about')->withTitle('Hello World');
}
abort(404);
}
}
Выводится массив статьей.
Вернем
только статью с id = 2:
$articles = DB::select("SELECT * FROM
`articles` WHERE id = ?", [2]);
dump($articles);
dump($articles);
Неименованные
метки мы можем заменить именованными:
$articles = DB::select("SELECT * FROM `articles` WHERE id =
:id", ['id'=>2]);
dump($articles);
dump($articles);
Добавление
информации в БД:
public function show() {
if(view()->exists('default.about')) {
DB::insert("INSERT INTO `articles` (`name`, `text`, `img`) VALUES (?, ?, ?)", ['test 1', 'TEXT', 'pic7.jpg']);
$articles = DB::select("SELECT * FROM `articles`");
dump($articles);
return view('default.about')->withTitle('Hello World');
}
abort(404);
}
}
if(view()->exists('default.about')) {
DB::insert("INSERT INTO `articles` (`name`, `text`, `img`) VALUES (?, ?, ?)", ['test 1', 'TEXT', 'pic7.jpg']);
$articles = DB::select("SELECT * FROM `articles`");
dump($articles);
return view('default.about')->withTitle('Hello World');
}
abort(404);
}
}
Обновление
данных:
public function show() {
if(view()->exists('default.about')) {
$result = DB::update('UPDATE `articles` SET `name` = ? WHERE `id` = ?', ["TEST 2", 5]);
$articles = DB::select("SELECT * FROM `articles`");
dump($articles);
return view('default.about')->withTitle('Hello World');
}
abort(404);
}
if(view()->exists('default.about')) {
$result = DB::update('UPDATE `articles` SET `name` = ? WHERE `id` = ?', ["TEST 2", 5]);
$articles = DB::select("SELECT * FROM `articles`");
dump($articles);
return view('default.about')->withTitle('Hello World');
}
abort(404);
}
Посмотрим,
что находится в переменной result:
public function show() {
if(view()->exists('default.about')) {
$result = DB::update('UPDATE `articles` SET `name` = ? WHERE `id` = ?', ["TEST 3", 5]);
$articles = DB::select("SELECT * FROM `articles`");
dump($result); // 1. Была затронута одна запись.
dump($articles);
return view('default.about')->withTitle('Hello World');
}
abort(404);
}
}
if(view()->exists('default.about')) {
$result = DB::update('UPDATE `articles` SET `name` = ? WHERE `id` = ?', ["TEST 3", 5]);
$articles = DB::select("SELECT * FROM `articles`");
dump($result); // 1. Была затронута одна запись.
dump($articles);
return view('default.about')->withTitle('Hello World');
}
abort(404);
}
}
Удаление
информации из БД:
public function show() {
if(view()->exists('default.about')) {
if(view()->exists('default.about')) {
$result = DB::delete('DELETE FROM `articles` WHERE `id` = ?', [5]); // delete также возвращает кол-во затронутых строк
$articles = DB::select("SELECT * FROM `articles`");
dump($result); // 1. Была затронута одна запись.
dump($articles);
return view('default.about')->withTitle('Hello World');
}
abort(404);
}
Как
получить идентификатор последней
добавленной записи:
public function show() {
if(view()->exists('default.about')) {
DB::insert("INSERT INTO `articles` (`name`, `text`, `img`) VALUES (?, ?, ?)", ['test 1', 'TEXT', 'pic7.jpg']);
$result = DB:: connection()->getPdo()->lastInsertId();
$articles = DB::select("SELECT * FROM `articles`");
dump($result); // id последней вставленной записи
dump($articles);
return view('default.about')->withTitle('Hello World');
}
abort(404);
}
if(view()->exists('default.about')) {
DB::insert("INSERT INTO `articles` (`name`, `text`, `img`) VALUES (?, ?, ?)", ['test 1', 'TEXT', 'pic7.jpg']);
$result = DB:: connection()->getPdo()->lastInsertId();
$articles = DB::select("SELECT * FROM `articles`");
dump($result); // id последней вставленной записи
dump($articles);
return view('default.about')->withTitle('Hello World');
}
abort(404);
}
Общие
запросы. Например, удаление таблицы.
DB::statement('DROP table `articles`');
В
файле app\Providers\ServiceProvider.php отобразим
выполняемые запросы.
<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
use Blade;
use Response;
use DB;
class AppServiceProvider extends ServiceProvider
{
public function boot()
{
Response::macro('myRes', function($value) {
return Response::make($value);
});
// listen позволяет описать функцию обработчик или кол-бэк функцию
// $query - объект sql-запроса
DB::listen(function ($query) {
dump($query->sql);
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
use Blade;
use Response;
use DB;
class AppServiceProvider extends ServiceProvider
{
public function boot()
{
Response::macro('myRes', function($value) {
return Response::make($value);
});
// listen позволяет описать функцию обработчик или кол-бэк функцию
// $query - объект sql-запроса
DB::listen(function ($query) {
dump($query->sql);
dump($query->bindings); // содержит массив
параметров, которые передаются в запрос
});
}
public function register()
{
//
}
}
});
}
public function register()
{
//
}
}
Комментариев нет:
Отправить комментарий