Each paginator instance provides additional pagination information via the following methods:
...$results->total()
(Not available when using simplePaginate)
server {
listen 8379;
server_name _;
root /usr/share/phpMyAdmin-4.9.4;
index index.php;
access_log off;
error_log /var/log/nginx/phpmyadmin.error.log;
location ~ ^/(.+\.php)$ {
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
$product = App\Product::find(1); // Поулчаем запись с id = 1
foreach ($product->categories as $category) {
// Делаете что хотите с категориями этого товара
}
$category = App\Category::find(1); // Поулчаем запись с id = 1
foreach ($category->products as $product) {
// Продукты в категории
}
$product = ...;
$category = App\Category::find(1); // Для примера будем использовать категорию с id = 1
$category->products()->attach($product->id);
$category = App\Category::find(1); // Для примера будем использовать категорию с id = 1
$category->products()->attach([1, 2, 3]); // Добавляем товары с id = 1, 2, 3 в категорию с id = 1
$category = App\Category::find(1); // Для примера будем использовать категорию с id = 1
$category->products()->detach(1); // Удаляем продукт с id = 1 из категории с id = 1. Так же можно передать массив для удаления сразу нескольких продуктов из категории
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Items extends Model
{
protected $fillable = ['name'];
public function categories() // название релейшена во Множественном числе, связь же ManyToMany
{
return $this->belongsToMany(
Category::class, // Название модели
'items_categories', // название твоей связующей таблицы
'item_id', // ключ к текущей таблице в связующей таблице
'category_id' // ключ к внешней таблице в связующей таблице
);
}
}
$item = Item::find($id)
$item->categories()->create($array_of_data)
SELECT dta.id, dta.doc_name, dta.doc_title, dta.link, dta.status, GROUP_CONCAT(DISTINCT dty.doc_id ORDER BY dty.doc_id ASC SEPARATOR ', ') AS type_id
FROM doc_table dta
INNER JOIN docs_types dty ON dta.id=dty.doc_id
GROUP BY dta.id;
SELECT dta.id, dta.doc_name, dta.doc_title, dta.link, dta.status, GROUP_CONCAT(DISTINCT t.type_name ORDER BY t.id ASC SEPARATOR ', ') AS type_name
FROM doc_table dta
INNER JOIN docs_types dty ON dta.id=dty.doc_id
INNER JOIN types t ON t.id=dty.type_id
GROUP BY dta.id;
ll /proc/{PID}/exe
ps -o ppid= -p {PID}
ps -aux
man ps
pwdx PID
lsof -p PID | grep cwd
function declOfNum(number, titles) {
cases = [2, 0, 1, 1, 1, 2];
return titles[ (number%100>4 && number%100<20)? 2 : cases[(number%10<5)?number%10:5] ];
}
const note = $('#note');
$('#countdown').countdown({
timestamp: new Date(2017, 8, 15, 15, 20),
callback: function(days, hours, minutes, seconds){
let message = "";
let daysText, hoursText, minutesText, secondsText = "";
daysText = declOfNum(days, ['день', 'дня', 'дней']);
hoursText = declOfNum(hours, ['час', 'часа', 'часов']);
minutesText = declOfNum(minutes, ['минута', 'минуты', 'минут']);
secondsText = declOfNum(seconds, ['секунда', 'секунды', 'секунд']);
message += '<span class="timer__pointer">' + daysText +"</span>";
message += '<span class="timer__pointer">' + hoursText + "</span>";
message += '<span class="timer__pointer">' + minutesText + "</span>";
message += '<span class="timer__pointer timer__pointer--orange">' + secondsText + "</span>";
note.html(message);
}
});