server {
...
# наследуется во все location где явно не задано
auth_request .auth;
location ^~ /unique_domain_without_user_agent_condition {
# тут auth_request не вызываем
auth_request off;
return 402;
}
location .auth {
# проверка UA
if ($http_user_agent !~* "test") {
return 403;
}
return 200;
}
}
public function scopeOfLocale(Builder $builder, $locale = 'en'){
return $builder->where('code', '=', $locale);
}
public function handle($request, Closure $next)
{
Locale::addGlobalScope('locale', function (Builder $builder){
$builder->ofLocale(app()->getLocale());
});
}
public function locales(){
return $this->hasMany(Locale::class);
}
public function current_locale(){
return $this->hasOne(Locale::class)->ofLocale(app()->getLocale());
}
$categories = Category::with('current_locale')->get();
$categories = Category::with('locales')->get();
const toString = (val, keys = []) =>
val instanceof Object
? Object.entries(val).map(([ k, v ]) => {
keys.push(k);
const result = toString(v, keys);
keys.pop();
return result;
}).join('&')
: `${keys.join('.')}=${val}`;
function toString(val) {
const result = [];
for (const stack = [ [ val, [] ] ]; stack.length;) {
const [ n, keys ] = stack.pop();
if (n instanceof Object) {
stack.push(...Object.entries(n).map(([ k, v ]) => [ v, [ ...keys, k ] ]).reverse());
} else {
result.push(`${keys.join('.')}=${n}`);
}
}
return result.join('&');
}
Если я соберу сам договор, акты выполненных работ за каждый месяц, рекомендацию, будет ли этого достаточно, чтобы в мой опыт работы поверили будущие наниматели?
function createTree($data, $params = []) {
extract($params + [
'levelKey' => 'level',
'childrenKey' => 'children',
]);
$root = [];
foreach ($data as $n) {
$arr = &$root;
for (
$level = $data[0][$levelKey];
$level++ < $n[$levelKey];
$arr = &$arr[count($arr) - 1][$childrenKey]
) ;
$arr[] = $n + [ $childrenKey => [] ];
}
return $root;
}
$tree = createTree($arMenu, [ 'levelKey' => 'LEVEL' ]);
function createTree($data, $params = []) {
$levelKey = $params['levelKey'] ?? 'level';
$childrenKey = $params['childrenKey'] ?? 'children';
$root = [];
$stack = [ [ $data[0][$levelKey], &$root ] ];
foreach ($data as $n) {
$end = end($stack);
$level = $n[$levelKey];
if ($level > $end[0]) {
$stack[] = [ $level, &$end[1][count($end[1]) - 1][$childrenKey] ];
} else while ($level < end($stack)[0]) {
array_pop($stack);
}
end($stack)[1][] = array_merge($n, [ $childrenKey => [] ]);
}
return $root;
}
function shortNumber(val) {
const degree = Math.floor(Math.log10(val) / 3);
const suffix = ['', ' тыс.', ' млн', ' млрд'][degree];
const num = val / (10 ** (degree * 3));
return `${num.toFixed(num >= 10 ? 0 : 1)}${suffix}`;
}
shortNumber(123); // "123"
shortNumber(12345); // "12 тыс."
shortNumber(1234567); // "1.2 млн"
- $i = 0;
- $coll = '';
- $mask = '';
- foreach ($params as $key => $value) {
- if ($i === 0) {
- $coll = $coll . "$key";
- $mask = $mask . "'" . "$value" . "'";
- } else {
- $coll = $coll . ", $key";
- $mask = $mask . ", '" . "$value" . "'";
- }
- $i++;
- }
+ $coll = implode(',', array_keys($params));
+ $mask = ':' . implode(',:', array_keys($params));
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'));
}
const boxScroll = document.querySelector('.box__list_scroll');
const boxImgs = document.querySelectorAll('.box__imgs > .box__img');
boxScroll.addEventListener('scroll', event => {
const sh = event.target.scrollHeight;
const h = event.target.offsetHeight;
const y = event.target.scrollTop;
const len = boxImgs.length;
const t = y / (sh - h);
const index = Math.floor((len - 1) * t);
boxImgs.forEach((img, i) => img.classList.toggle('__active', i === index));
});
В переменной $config массив:Массив состоит из 1 элемента, было бы странно ожидать что итераций foreach будет больше одной. Возможно имеет смысл проверять переменные чаще, если результат не соответствует ожиданиям, var_dump/dd($lang) внутри foreach был бы очень кстати...
(new Decimal\Decimal('153.17'))->mul(100)->toInt(); // 15317
(int)bcmul('153.17', '100'); // 15317
общепринятых нормах поведения