PHP
Заметки по laravel
Как создать нового пользователя в Laravel если забыли логин и пароль но есть доступ к FTP или SSH?
1 Если у вас есть доступ к FTP:
1. В файле \app\Http\routes.php добавьте код:
Route::get('/test', 'TestController@addNewUser');
2. В файле \app\Http\Controllers\TestController.php добавьте код:
class TestController extends Controller
{
...
/**
* Добавить новго пользователя
*/
public function addNewUser()
{
$user = new User();
$user->name = 'test user name';
$user->email = 'test@test.ru';
$user->password = \Hash::make('my_password');
//$user->role = 'admin';
$user->save();
dd('Успех');
}
...
}
3. После этого перейдя по адресу URL //mydomain.ru/test создастся новый пользователь
2 Если у вас есть доступ к консоли SSH:
1. Перейдите в корень проекта
2. Введите в консоли последовательно:
php artisan tinker
$u = new \App\User();
$u->name = 'test user name';
$u->email = 'test@test.ru';
$u->password = \Hash::make('my_password');
$u->role = 'admin'
$u->save();
3. если консоль ответит true значит создался новый пользователь с указанными данными
p.s. ларавел по умолчанию использует Bcrypt, можно воспользоваться ресурсом: https://bcrypt-generator.com/
Как создать консольную команду в Laravel:
2019.08.18
1. В директории {mySite}\app\Console\Commands создать файл "MyCommand.php:
namespace App\Console\Commands;
use Illuminate\Console\Command;
use Illuminate\Contracts\Bus\SelfHandling;
class MyCommand extends Command implements SelfHandling
{
protected $signature = 'make:my_command {date_from} {date_to}';
protected $description = 'Мое описание';
public $date_from = '';
public $date_to = '';
/**
* Create a new command instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}
/**
* Execute the command.
*
* @return void
*/
public function handle()
{
dump('run command OK');
}
}
2. В файле "{mySite}\app\Console\Kernel.php" добавить строку:
protected $commands = [ ... \App\Console\Commands\MyCommand::class, ];
3. В консоли наберите:
php artisan make:my_command 2019.01.01 2019.02.02
Сортировка по полю, с параметром возрастание/убывание:
пример с пагинацией:
$posts = Post::orderBy('posts.created_at','desc')->paginate(20);
htaccess редирект на папку public:
RewriteEngine on
RewriteCond %{REQUEST_URI} !^public
RewriteRule ^(.*)$ public/$1 [L]
редирект с ip адреса на домен:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^147\.78\.67\.252
RewriteRule (.*) https://phpqa.ru/$1 [R=301,L]
Как загрузить Excel файл в Laravel?
use Maatwebsite\Excel\Facades\Excel;
//Внимание , может не работать если у файла только одна вкладка.
Excel::load($fileName, function ($reader) {
$results = $reader->toArray();
foreach ($results[0] as $result) {
$country = trim((string)$result['country']);
$regionObj = $fiasRegionModel::where('country', $country)->where('title', $region)->first();
if (!$regionObj) {
$regionObj = new $fiasRegionModel();
$regionObj->country = $country;
$regionObj->title = $region;
$regionObj->save();
$region_voc[$region] = $regionObj->id;
$region_id = $regionObj->id;
} else {
$region_id = $regionObj->id;
}
}
}