select
keys.*
from keys.*
join
(select max(issued_at) as issued_at, user_login from keys group by user_login) as last
on
last.user_login = keys.user_login and last.issued_at = keys.issued_at
select
"user_login",
(select key "user_login" from keys as last where keys.id = last.id order by issued_at desc limit 1) as key
from keys
group by "user_login"
SELECT
user_login,
LAST_VALUE(key) OVER(ORDER BY issued_at desc) as last_key
FROM
keys
group by "user_login";
SELECT
user_login,
ARRAY_AGG(key ORDER BY issued_at desc)[0]
FROM
keys
group by "user_login";
public function handle($request, Closure $next)
{
return $this->encrypt($next($this->decrypt($request)));
}
RouteServiceProvider.php
Route::bind('test', function (string $value) {
return new Test($value);
});
web.php
Route::get('/{test}', [TestController::class, 'index']);
TestController.php
class TestController extends Controller
{
public function index(Request $request, Test $test){
dd($test);
}
public function category(Request $request, $code) {
//Получаю все товары данной катигории следующим образом: $category->products
$category = Category::where('code', $code)->firstOrFail();
//А пагинация строится в отдельном запросе к таблице Товаров
$products = $category->products()
->when(($request->get('price_min'), function(Builder $query, $price_min){
return $query->where('price', '>=', $price_min);
})->when(($request->get('price_max'), function(Builder $query, $price_max){
return $query->where('price', '<=', $price_max);
})->paginate(4);
return view('category', compact('category', 'products'));
}
WITH
some_data AS ( select val from unnest(ARRAY['AAAABB', 'AAABBB']) as val)
SELECT *
FROM some_data;
public function up(): void
{
Schema::create('products', function (Blueprint $table) {
$table->id();
$table->timestamps();
$table->string('name');
$table->integer('price');
$table->text('des');
$table->unsignedBigInteger('category_id');
$table->foreign('category_id')->references('id')->on('categories');
});
}
select sum(number), country_id from table group by country_id;
select sum(number), city_name, country_id from table group by country_id;
public function project(): HasOne
{
$instance = $this->newRelatedInstance(Project::class);
$relation = new HasOne($instance->newQuery(), $this, DB::raw('project_user.user_id'), $this->getKeyName());
return $relation->leftJoin('project_user', 'project_user.project_id', '=', 'projects.id');
}
Model::insert([
[row1], [row2], [row3], [row4],
]);
public static function fromRequest(FormRequest $request): static
{
$data = $request->validated();
$properties = (new \ReflectionClass(self::class))->getProperties(\ReflectionProperty::IS_PUBLIC);
foreach ($properties as $property){
if(!isset($data[$property->name])){
$data[$property->name] = $property->getDefaultValue();
}
}
return new static(...$data);
}