👨🏻💻 Я пытаюсь получить данные из таблицы MySQL, но вылезает одна из этих ошибок:
PHP задачи с собеседований
mysql_fetch_array() expects parameter 1 to be resource, boolean givenили
mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean givenВот мой код:
$username = $_POST['username'];Кто-нибудь знает, как решить эту проблему?
$password = $_POST['password'];
$result = mysql_query("SELECT * FROM Users WHERE UserName LIKE $username");
while($row = mysql_fetch_array($result))
{
echo $row['FirstName'];
}
PHP задачи с собеседований
👎3
👨🏻💻Изминения значение параметра в url по нажатию на ссылку
У меня есть такая таблица:
PHP задачи с собеседований
У меня есть такая таблица:
echo "<table border='1'>";Мне нужно по нажатию на ссылку, что бы менялся параметр direction на 0 или 1. Считать значение direction я могу, но как правильно изменить и записать его новое значение - в этом проблема.
echo "<tr>
<th><a href='?sort=1&direction=1'>Название продукта</a></th>
<th><a href='?sort=2&direction=1'>Цена в грн</a></th>
<th><a href='?sort=3&direction=1'>Количество (кг/шт)</a></th>
<th><a href='?sort=4&direction=1'>Стоимость в грн</a></th>
<th>Действие</th>
</tr>";
PHP задачи с собеседований
👨🏻💻 Получаю такую ошибку.
Пробовал - Curl error 60, SSL certificate issue: self signed certificate in certificate chain ,не помогло.
Может кто сталкивался ? Сижу час - ломаю голову. Поменял сертификат, запускаю без apache,через php artisan serv.
PHP задачи с собеседований
Пробовал - Curl error 60, SSL certificate issue: self signed certificate in certificate chain ,не помогло.
Может кто сталкивался ? Сижу час - ломаю голову. Поменял сертификат, запускаю без apache,через php artisan serv.
PHP задачи с собеседований
👎4
👨🏻💻 Аннотация Psalm для типа возвращаемого значения в месте вызова метода/функции
Для демонстрации проблемы есть такой упрощенный реальный код:
Понятно что причина в том, что в объявлении метода getParamByKey, mixed указан как тип возвращаемого значения, из-за чего psalm делает вывод, что в B::getParamX и B::getParamY могут прилететь данные любого типа. Только вот в действительности это не так, поскольку перед вызовами B::getParamX и B::getParamY вызывается метод A::validateParams, который гарантирует корректность типов для обоих методов.
Вопрос: какую аннотацию можно задать, чтобы заставить psalm корректно выводить типы с учетом вызова A::validateParams?
Если так сделать нельзя, то можно ли в месте вызова $this->getParamByKey указать возвращаемый тип из getParamByKey? Чтобы это выглядело как-то так:
PHP задачи с собеседований
Для демонстрации проблемы есть такой упрощенный реальный код:
abstract class AТеперь к сути. При прогоне этого кода через psalm для методов B::getParamX и B::getParamY я получаю по два варнинга: MixedReturnStatement: Could not infer a return type и MixedInferredReturnType: Could not verify return type 'string' for.
{
/**
* @var array<string, mixed>
*/
private array $params;
public function __construct(array $params)
{
static::validateParams($params);
$this->params = $params;
}
final protected function getParamByKey(string $key): mixed
{
return $this->params[$key];
}
/**
* @throws \InvalidArgumentException
*/
abstract protected static function validateParams(array $params): void;
}
final class B extends A
{
protected static function validateParams(array $params): void
{
if (!is_string($params['X'])) {
throw new \InvalidArgumentException('Param X must be string');
}
if (!is_int($params['Y'])) {
throw new \InvalidArgumentException('Param Y must be int');
}
}
public function getParamX(): string
{
return $this->getParamByKey('X');
}
public function getParamY(): int
{
return $this->getParamByKey('Y');
}
}
Понятно что причина в том, что в объявлении метода getParamByKey, mixed указан как тип возвращаемого значения, из-за чего psalm делает вывод, что в B::getParamX и B::getParamY могут прилететь данные любого типа. Только вот в действительности это не так, поскольку перед вызовами B::getParamX и B::getParamY вызывается метод A::validateParams, который гарантирует корректность типов для обоих методов.
Вопрос: какую аннотацию можно задать, чтобы заставить psalm корректно выводить типы с учетом вызова A::validateParams?
Если так сделать нельзя, то можно ли в месте вызова $this->getParamByKey указать возвращаемый тип из getParamByKey? Чтобы это выглядело как-то так:
public function getParamX(): stringТут конечно можно создать переменную, присвоить ей возвращаемое значение, а потом задать ей аннотацию / @var string $tmp /, только мне этот вариант не нравится, так как выглядит не очень красиво.
{
return $this->getParamByKey('X'); /** @psalm-return string */
}
public function getParamY(): int
{
return $this->getParamByKey('Y'); /** @psalm-return int */
}
PHP задачи с собеседований
👎4
👨🏻💻 Удалить пробел из строки в переменной PHP
Есть такой кусок кода
Для работы использую пхп 7.3
получаю 39 999
Использовал уже все известные регулярки, с различной кодировкой, без толку, не помогло ничего. Может кто подскажет решение проблемы? Кто сталкивался уже с таким
PHP задачи с собеседований
Есть такой кусок кода
$pric = $html->find('html body div span[class=price__value]', 0); // цена товараПарсингом $html = new simple_html_dom(); вытаскиваю цену товара, но внутри цены присутствует пробел, в итоге у меня берет цифры до пробела (если тысячи) и нормально если пробела нет.
$pric = strip_tags($pric); // обрезаю лишние хтмл теги
$pric = preg_replace('%^\s+|\s+$%u', '', $pric); // здесь должна быть цена без пробелов (но они есть)
Для работы использую пхп 7.3
получаю 39 999
Использовал уже все известные регулярки, с различной кодировкой, без толку, не помогло ничего. Может кто подскажет решение проблемы? Кто сталкивался уже с таким
$pric = html_entity_decode($pric);и все остается так же как и было. Пробел на месте пы.сы. Из последнего, попробовал заменить пробел на "-", видит пробел в конце строки, а не в середине (между цифрами)
echo $pric. "<br>";
$pric = preg_replace('% %u', '', $pric);
echo $pric. "<br>"; // выводим цену
PHP задачи с собеседований
👨🏻💻 Как сложить два равных по длине массива по индексам
Есть два массива
Как сложить эти два массива с равными индексами чтобы на выходе получилось следующее
Есть два массива
$arr = array([0] => 1,[1] => 2, [2] => 3 )Размеры массивов могут меняться, но они всегда будут одинаковыми
$arr1 = array([0] => 4,[1] => 5, [2] => 6 )
Как сложить эти два массива с равными индексами чтобы на выходе получилось следующее
array([0] => 5,[1] => 7,[2] => 9)
PHP задачи с собеседований👍3
👨🏻💻 У меня есть компонент news.list, в котором уже присутствует фильтрация новостей по свойству заданных тем. Как сделать еще одну фильтрацию для этого же компонента? Вот мой компонент news.list. В начале уже пытался вывести свойство.
PHP задачи с собеседований
<?phpПри этом у меня создано свойство инфоблока Новости - "Показ новости" в котором два значения "Да" и "Нет". И если я в параметрах элемента поставлю Показ новости: Да, то тогда новость должна показываться только авторизованным пользователям и наооборот.
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
$APPLICATION->SetTitle("Новости");
global $USER;
$filter = Array(
"IBLOCK_ID"=>$arParams["IBLOCK_ID"],
"ACTIVE"=>"Y",
"PROPERTY_SHOWLIST"=> $USER->GetID(),
);
$res = CIBlockElement::GetList(Array("SORT"=>"ASC"), $filter, false, false, Array("ID", "IBLOCK_ID", "NAME", "DATE_ACTIVE_FROM", "DETAIL_PAGE_URL"));
?>
<?
$themeId = intval($_GET['sel_theme']);
$themeFilter = array();
$themeCode = '';
$selectedThemeName = '';
if ($themeId > 0) {
$themeFilter["PROPERTY_THEME"] = $themeId;
} else if (isset($_GET['sel_theme'])) {
$themeCode = $_GET['sel_theme'];
$themeFilter = array('PROPERTY_THEME.CODE' => $themeCode);
$selectedThemeName = getThemeNameByCode($themeCode);
}
function getThemeNameByCode($themeCode) {
$theme = CIBlockElement::GetList(
array(),
array('CODE' => $themeCode),
false,
false,
array('ID', 'NAME')
)->Fetch();
if ($theme) {
return $theme['NAME'];
}
return false;
}
?>
<?$APPLICATION->IncludeComponent(
"bitrix:news.list",
"news.list",
array(
"ACTIVE_DATE_FORMAT" => "d.m.Y",
"ADD_SECTIONS_CHAIN" => "Y",
"AJAX_MODE" => "N",
"AJAX_OPTION_ADDITIONAL" => "",
"AJAX_OPTION_HISTORY" => "N",
"AJAX_OPTION_JUMP" => "N",
"AJAX_OPTION_STYLE" => "Y",
"CACHE_FILTER" => "N",
"CACHE_GROUPS" => "Y",
"CACHE_TIME" => "36000000",
"CACHE_TYPE" => "A",
"CHECK_DATES" => "Y",
"DETAIL_URL" => "/news/detail/#ID#/",
"DISPLAY_BOTTOM_PAGER" => "Y",
"DISPLAY_DATE" => "Y",
"DISPLAY_NAME" => "Y",
"DISPLAY_PICTURE" => "Y",
"DISPLAY_PREVIEW_TEXT" => "Y",
"DISPLAY_TOP_PAGER" => "N",
"FIELD_CODE" => array(
0 => "",
1 => "",
),
"SELECTED_THEME_NAME" => $selectedThemeName,
"FILTER_NAME" => "themeFilter",
"HIDE_LINK_WHEN_NO_DETAIL" => "N",
"IBLOCK_ID" => "2",
"IBLOCK_TYPE" => "news",
"INCLUDE_IBLOCK_INTO_CHAIN" => "Y",
"INCLUDE_SUBSECTIONS" => "Y",
"MESSAGE_404" => "",
"NEWS_COUNT" => "4",
"PAGER_BASE_LINK_ENABLE" => "N",
"PAGER_DESC_NUMBERING" => "N",
"PAGER_DESC_NUMBERING_CACHE_TIME" => "36000",
"PAGER_SHOW_ALL" => "N",
"PAGER_SHOW_ALWAYS" => "Y",
"PAGER_TEMPLATE" => "pagination",
"PAGER_TITLE" => "Новости",
"PARENT_SECTION" => "",
"PARENT_SECTION_CODE" => "",
"PREVIEW_TRUNCATE_LEN" => "",
"PROPERTY_CODE" => array(
0 => "",
1 => "THEME",
2 => "SHOWLIST",
),
"SET_BROWSER_TITLE" => "Y",
"SET_LAST_MODIFIED" => "N",
"SET_META_DESCRIPTION" => "Y",
"SET_META_KEYWORDS" => "Y",
"SET_STATUS_404" => "N",
"SET_TITLE" => "Y",
"SHOW_404" => "N",
"SORT_BY1" => "ACTIVE_FROM",
"SORT_BY2" => "SORT",
"SORT_ORDER1" => "DESC",
"SORT_ORDER2" => "ASC",
"STRICT_SECTION_CHECK" => "N",
"COMPONENT_TEMPLATE" => "news.list"
),
false
);?>
<?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");?>
PHP задачи с собеседований
👨🏻💻 Моя первая программа, не могу понять почему не работает
Это HTML
Это HTML
<!DOCTYPE html>PHP
<html>
<head>
<title>TesT</title>
<meta charset="utf-8">
</head>
<body>
<h2>Введи свои данные:</h2>
<form action="display.php" method="post">
<p>Введите имя: <input type="text" name="firstname" /></p>
<p>Введите фамилию: <input type="text" name="lastname" /></p>
<input type="submit" value="Отправить">
</form>
</body>
</html>
<?phpПолучаю вот такую ошибку
$name = $_POST["firstname"];
$surname = $_POST["lastname"];
echo "Ваше имя: <b>".$name . " " . $surname . "</b>";
?>
stderr: PHP Warning: Undefined array key "firstname" in C:\Users\user\Desktop\phpGides\display.php on line 3PHP задачи с собеседований
PHP Warning: Undefined array key "lastname" in C:\Users\user\Desktop\phpGides\display.php on line 4
👎14👍1
👨🏻💻 Как собрать массив из строчных данных?
Здравствуйте помогите пожалуйста понять алгоритм сборки данных в массив. надо собрать дерево категорий из строчных даных, все строки с ':' это данные которые должны быть в соответствующей категории.
Пример данных
плюс еще db1,catA,cat1a это пример, на сомом деле все данные разные я не могу ни к чему привязаться кроме знаков "\n" и ":"
Здравствуйте помогите пожалуйста понять алгоритм сборки данных в массив. надо собрать дерево категорий из строчных даных, все строки с ':' это данные которые должны быть в соответствующей категории.
Пример данных
db1дело в том что структура данных собирается по строчно, попробую объяснить: первая строка без ':' это главная категория если следующая строка тоже без знака ':' то это под категория и так далее до первой строки со знаком ':' типо db1->catA->cat1a1 если в строке есть знак ':' то данные записываются в последую под категорию.
catA
cat1a1
prod1:a0
prod2:a0
prod3:a0
cat2a2
prod1:a1
prod2:a1
prod3:a1
catB
cat1b1
prod1:b0
prod2:b0
prod3:b0
cat2b2
prod1:b1
prod2:b1
prod3:b1
db2
catC
cat1c1
prod1:c0
prod2:c0
prod3:c0
cat2c1
prod1:c1
prod2:c1
prod3:c1
catD
cat1d2
prod1:d0
prod2:d0
prod3:d0
cat2d2
prod1:d1
prod2:d1
prod3:d1
на выходе должен получится массив
$db = [
'db1' =>
[
'catA' =>
[
'cat1a1' => ['prod1:a0', 'prod2:a0', 'prod3:a0'] ,
'cat2a2' => ['prod1:a1', 'prod2:a1', 'prod3:a1']
],
'catB' =>
[
'cat1b1' => ['prod1:b0', 'prod2:b0', 'prod3:b0'],
'cat2b2' => ['prod1:b1', 'prod2:b1', 'prod3:b1']
]
],
'db2' =>
[
'catC' =>
[
'cat1c1' => ['prod1:c0', 'prod2:c0', 'prod3:c0'] ,
'cat2c2' => ['prod1:c1', 'prod2:c1', 'prod3:c1']
],
'catD' =>
[
'cat1d1' => ['prod1:d0', 'prod2:d0', 'prod3:d0'],
'cat2d2' => ['prod1:d1', 'prod2:d1', 'prod3:d1']
]
]
];
плюс еще db1,catA,cat1a это пример, на сомом деле все данные разные я не могу ни к чему привязаться кроме знаков "\n" и ":"
db1->catA->cat1a=prod1:a0
db1->catA->cat1a=prod2:a0
db1->catA->cat1a=prod3
PHP задачи с собеседований👍1
👨🏻💻 Как сохранить на сервер, сделанный через php xml файл?
Есть код, пытался через file сохранить и пытался и через curl, но ничего не получается, как сделать? Подскажите пожалуйста
Есть код, пытался через file сохранить и пытался и через curl, но ничего не получается, как сделать? Подскажите пожалуйста
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
/*
* Настройки
*/
require($_SERVER["DOCUMENT_ROOT"]."/1c_exchange/core/options.php");
/*
* Функции
*/
require($_SERVER["DOCUMENT_ROOT"]."/1c_exchange/core/functions.php");
$reader = new XMLReader();
$xmlfile = GetXML("users");
if (!$reader->xml($xmlfile)){
$error_text = date("d.m.Y H:i:s")." - Импорт сотрудников: полученный ответ от веб-сервиса не удалось открыть на чтение, как xml файл";
hlb_import_log($error_text);
die($error_text);
}
$arPositions = array();
//справочник должнсотей. их меньеш чем юзеров так что сначала получим его
CModule::IncludeModule("highloadblock");
$hlblock = Bitrix\Highloadblock\HighloadBlockTable::getById(HLB_POSITIONS_ID)->fetch();
$entity = Bitrix\Highloadblock\HighloadBlockTable::compileEntity($hlblock);
$entity_data_class = $entity->getDataClass();
$resPosition = $entity_data_class::getList(array ('order' => array ("ID" => "ASC"), 'filter' => array(), 'select' => array('*')));
while($arPosition = $resPosition->Fetch()) $arPositions[$arPosition["UF_NAME"]] = $arPosition;
$oUser = new CUser;
while ($reader->read()):
if ($reader->nodeType == XMLReader::ELEMENT && $reader->name == 'm:items'){
$data = new XMLReader();
$data->xml($reader->readOuterXML());
$UserFields = [];
$AcceptedPosition = [];
while($data->read()){
switch ($data->name){
case "m:id": $v = $d
PHP задачи с собеседований👎2
👨🏻💻Задание для вас
Как занести выбранные элементы из json в массив PHP
Подскажите как занести из json файла в массив double все элементы link через for()?
[{"_id":"2","link":"t.me\/vamix"},{"_id":"1","link":"t.me\/texas"}]
$double = [];
$q=mysql_query("SELECT * FROM black ORDER BY _id DESC");
while($e=mysql_fetch_assoc($q)) $output[] = $e;
$string = json_encode($output);
print($string);
PHP задачи с собеседований
Как занести выбранные элементы из json в массив PHP
Подскажите как занести из json файла в массив double все элементы link через for()?
[{"_id":"2","link":"t.me\/vamix"},{"_id":"1","link":"t.me\/texas"}]
$double = [];
$q=mysql_query("SELECT * FROM black ORDER BY _id DESC");
while($e=mysql_fetch_assoc($q)) $output[] = $e;
$string = json_encode($output);
print($string);
PHP задачи с собеседований
👨🏻💻Вопрос от пользователя
Валидация формы обратной связи php
У меня есть простенький php скрипт который отправляет сообщение в чат телеграмм от имени бота. На сайте есть форма обратной связи к которой подключен данный php обработчик.
Мне нужно сделать так что-бы нельзя было отправить пустые поля! Как мне это сделать?
Сам код:
Валидация формы обратной связи php
У меня есть простенький php скрипт который отправляет сообщение в чат телеграмм от имени бота. На сайте есть форма обратной связи к которой подключен данный php обработчик.
Мне нужно сделать так что-бы нельзя было отправить пустые поля! Как мне это сделать?
Сам код:
sendmess.phpindex.php
<?php
/* https://api.telegram.org/botXXXXXXXXXXXXXXXXXXXXXXX/getUpdates,
где, XXXXXXXXXXXXXXXXXXXXXXX - токен вашего бота, полученный ранее */
$name = $_POST['user_name'];
$email = $_POST['user_email'];
$phone = $_POST['user_phone'];
$token = "TOKEN_BOT";
$chat_id = "CHAT_ID";
$arr = array(
'ФИО:' => $name,
'Email:' => $email,
'Телефон:' => $phone,
);
foreach($arr as $key => $value) {
$txt .= "<b>" . urlencode($key) . " </b>" . urlencode($value) ."%0A";
};
$sendToTelegram = fopen("https://api.telegram.org/bot{$token}/sendMessage?chat_id={$chat_id}&parse_mode=html&text={$txt}","r");
if ($sendToTelegram) {
header('Location: index.php');
} else {
echo "Error";
}
?>
<!-- Форма обратной связи -->
<form action="sendmess.php" method="POST">
<!-- Каждый input для выравнивания вкладываем в блок input-box -->
<div class="input-box">
<input type="text" name="user_name" placeholder="ФИО" />
</div>
<div class="input-box">
<input type="email" name="user_email" placeholder="Email" />
</div>
<div class="input-box">
<input type="phone" name="user_phone" placeholder="Телефон" />
</div>
<div class="button">
<input class="button" type="submit" value="Отправить" />
</div>
</form>
</div>
</div>
PHP задачи с собеседований👍4👎1
👨🏻💻Вопрос от пользователя
Пытаюсь вытянуть информацию о видео с MySQL через апи в реакт
У меня есть функция в ларе которой можно загрузить видео в бд, но когда хочу вывести в реакт то не получается воспроизвести видео, не могу понять почему, ошибок в консоли не выдаёт код с лары :
Пытаюсь вытянуть информацию о видео с MySQL через апи в реакт
У меня есть функция в ларе которой можно загрузить видео в бд, но когда хочу вывести в реакт то не получается воспроизвести видео, не могу понять почему, ошибок в консоли не выдаёт код с лары :
public function store(Request $request){
$data = $request->validate([
'name' => 'required',
'description' => 'required',
'category_id' => 'required',
'image' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
'video' => 'required|file|mimes:mp4,mov,avi|max:100000'
]);
if ($request->hasFile('image')){
$image = $request->file('image');
$imageName = time() . '_' . $image->getClientOriginalName();
$data['image'] = $imageName;
$request->image->move(public_path('storage/images'), $imageName);
}
if ($request->hasFile('video')) {
$video = $request->file('video');
$videoName = time() . '_' . $video->getClientOriginalName();
$data['video'] = $videoName;
$request->video->move(public_path('storage/videos'), $videoName);
}
Post::create($data);
$posts = Post::all();
return view('Post.listPost', ['posts'=>$posts]);
}
код с реакта :function PostDetail() {
const { id } = useParams();
const [post, setPost] = useState({});
useEffect(() => {
fetch(`http://127.0.0.1:8000/api/post?id=${id}`)
.then(res => res.json())
.then(data => setPost(data))
.catch(error => console.error(error));
}, [id]);
return (
<div className="post_detail">
<div className="post_details_watch">
<video className="post_detail_video" controls>
<source src={post.video} type="video/mp4" />
</video>
<img src={post.image} alt=""/>
<p>{post.name}</p>
<p>Plot Summary :</p>
<p>Содержание: {post.description}</p>
</div>
</div>
);
}
PHP задачи с собеседований👨🏻💻Вопрос от пользователя
Wordpress сайт в PHP скрипте $_SERVER['HTTP_USER_AGENT'] выдаёт разные значения хотя захожу с одного и того же устройства и браузера
Доброго времени суток!
сайт выложил уже на хостинг. с помощью $_SERVER['HTTP_USER_AGENT'] принимается решение какую версию сайта показывать мобильную или десктопную.
сначала вроде работает нормально, потом ни с того ни с сего на мобильном начинает показывать десктоп версию или наоборот на десктоп мобильную, хотя открывают его с одних и тех же устройств и браузеров.
вот код
Wordpress сайт в PHP скрипте $_SERVER['HTTP_USER_AGENT'] выдаёт разные значения хотя захожу с одного и того же устройства и браузера
Доброго времени суток!
сайт выложил уже на хостинг. с помощью $_SERVER['HTTP_USER_AGENT'] принимается решение какую версию сайта показывать мобильную или десктопную.
сначала вроде работает нормально, потом ни с того ни с сего на мобильном начинает показывать десктоп версию или наоборот на десктоп мобильную, хотя открывают его с одних и тех же устройств и браузеров.
вот код
$mobile =false;
$android = strpos($_SERVER['HTTP_USER_AGENT'],"Android");
$bberry = strpos($_SERVER['HTTP_USER_AGENT'],"BlackBerry");
$iphone = strpos($_SERVER['HTTP_USER_AGENT'],"iPhone");
$ipod = strpos($_SERVER['HTTP_USER_AGENT'],"iPod");
$webos = strpos($_SERVER['HTTP_USER_AGENT'],"webOS");
if ($android || $bberry || $iphone || $ipod || $webos== true)
{
$mobile =true;
}
echo $_SERVER['HTTP_USER_AGENT'];
if($mobile)
{
require "enMob.php";
}
else
{
require "en.php";
}
PHP задачи с собеседований👎13
👨🏻💻Вопрос от англоязычного пользователя
How to append an attribute into Eloquent collection in Laravel
I'm writing a pagination on laravel. I know that laravel has it's own pagination but I want just to try make my own. So I used a generator to get records from db but i have a problem - I need somehow mark last records to understend when it'll be the last page in pagination. I tried to add a field to my records via 'append' in Laravel but it doesn't works
Here is the code from Model
protected function is_last_record(): \Attribute
{
return new \Attribute(
fn () => 'yes',
);
}
public function pagination($pageNumber=1, $numOfRecords=8)
{
$numberOfRecords = Anime::select('*')->count();
$offset = ($pageNumber - 1) * $numOfRecords;
$data = Anime::select('title', 'poster')->limit($numOfRecords)->offset($offset)->get();
$numberOfRecords -= $data->count();
if($data->count() > 0){
if($numberOfRecords > 0){
yield $data;
}
else if($numberOfRecords == 0){
$data->appends(['is_last_record'])->toArray();
yield $data;
}
}
}
Controller code
public function List(){
$data = $this->anime->pagination();
$list = [];
foreach($data as $item){
array_push($list, $item);
}
return view('/list', ['list' => $list]);
}
Can somebody help me to fix it so it can return also a field "is_last_record" if it's a last page and i could parse it in view ?
PHP задачи с собеседований
How to append an attribute into Eloquent collection in Laravel
I'm writing a pagination on laravel. I know that laravel has it's own pagination but I want just to try make my own. So I used a generator to get records from db but i have a problem - I need somehow mark last records to understend when it'll be the last page in pagination. I tried to add a field to my records via 'append' in Laravel but it doesn't works
Here is the code from Model
protected function is_last_record(): \Attribute
{
return new \Attribute(
fn () => 'yes',
);
}
public function pagination($pageNumber=1, $numOfRecords=8)
{
$numberOfRecords = Anime::select('*')->count();
$offset = ($pageNumber - 1) * $numOfRecords;
$data = Anime::select('title', 'poster')->limit($numOfRecords)->offset($offset)->get();
$numberOfRecords -= $data->count();
if($data->count() > 0){
if($numberOfRecords > 0){
yield $data;
}
else if($numberOfRecords == 0){
$data->appends(['is_last_record'])->toArray();
yield $data;
}
}
}
Controller code
public function List(){
$data = $this->anime->pagination();
$list = [];
foreach($data as $item){
array_push($list, $item);
}
return view('/list', ['list' => $list]);
}
Can somebody help me to fix it so it can return also a field "is_last_record" if it's a last page and i could parse it in view ?
PHP задачи с собеседований
👍1
👨🏻💻 PHP 8.1, ошибка при установке sqlsrv и pdo_sqlsrv
Имеется сервер Debain 11 на котором установлен SQL SERVER и PHP 8.1 Необходимо установить необходимые расширения (sqlsrv и pdo_sqlsrv), при попытке установить одно из них я получаю ошибку:
PS. Так же при попытке вручную скомпилировать расширение получаю ошибку:
Имеется сервер Debain 11 на котором установлен SQL SERVER и PHP 8.1 Необходимо установить необходимые расширения (sqlsrv и pdo_sqlsrv), при попытке установить одно из них я получаю ошибку:
/usr/bin/sed: can't read /usr/lib/x86_64-linux-gnu/libltdl.la: No such file or directoryПробовал удалять и устанавливать libtool, пробовал менять версию PHP с 7.4 и до более новых версий, пробовал удалять кэш и временные пакеты. Данная ошибка появляться в любом случаи, чтобы я не пробовал делать. ChatGPT не помогает :) Какие могут быть возможные решения проблемы?
libtool: error: '/usr/lib/x86_64-linux-gnu/libltdl.la' is not a valid libtool archive
make: *** [Makefile:254: pdo_sqlsrv.la] Error 1
ERROR: `make' failed
PS. Так же при попытке вручную скомпилировать расширение получаю ошибку:
libtool: warning: library '/usr/lib/x86_64-linux-gnu/libodbc.la' was moved.PHP задачи с собеседований
libtool: warning: library '/usr/lib/x86_64-linux-gnu/libodbcinst.la' was moved.
libtool: link: cc -shared -fPIC -DPIC .libs/conn.o .libs/util.o .libs/init.o .libs/stmt.o shared/.libs/core_conn.o shared/.libs/core_results.o shared/.libs/core_stream.o shared/.libs/core_init.o shared/.libs/core_stmt.o shared/.libs/core_util.o shared/.libs/FormattedPrint.o shared/.libs/localizationimpl.o shared/.libs/StringFunctions.o -lstdc++ /usr/lib/x86_64-linux-gnu/libodbc.so /usr/lib/x86_64-linux-gnu/libodbcinst.so -g -O2 -Wl,-z -Wl,now -pthread -Wl,-soname -Wl,sqlsrv.so -o .libs/sqlsrv.so
libtool: error: '/usr/lib/x86_64-linux-gnu/libltdl.la' is not a valid libtool archive
make: *** [Makefile:251: sqlsrv.la] Error 1
👍3