Простой пример: таблица пользователей и форма для их редактирования. Если мы не заполняем поле и отправляем форму, то на сервер приходит пустая строка, которая и сохраняется в БД.это у вас она сохраняется. Что мешает этого не делать? Достаточно после валидации бизнес-логики пройтись по массиву данных, перед вставкой в базу, и обNULLить все переменные с пустыми строками. Пустые строки в базе не нужны, никогда. Нет ни одной причины их там хранить.
пустая строка - это тоже осмысленное значениетеоретически - это "осмысленное значение", практически - это мусор, это результат развития языков высокого уровня, типа php, которые позволяют вам записывать в базу пустую строку (поощряют это делать в виду своих конструктивных особенностей).
new Date(serverTimestamp * 1000)
) относительно его часового пояса. date.toUTCString()
по Гринвичу или, как сказал Emil Revencu, брать new Date().getTime() / 1000
( new Date().getTime()
это в миллисекундах ) <?php
function get_location($ch, $output){
$curl_info = curl_getinfo($ch);
$headers = substr($output, 0, $curl_info["header_size"]); //split out header
preg_match("!\r\n(?:Location|URI): *(.*?) *\r\n!", $headers, $matches);
return $matches[1];
}
$link = "https://vk.com/away.php?to=https%3A%2F%2Fvk.cc%2F8L3cD8&post=-75604109_25935&cc_key=";
$arr = parse_url($link);
parse_str($arr['query'], $output);
$vk_cc_link = $output['to'];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $vk_cc_link);
// Я задал эти параметры, потому что у меня на локалхосте не настроен SSL
//curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
//curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
$link = get_location($ch, $output);
$arr = parse_url($link);
parse_str($arr['query'], $out);
$new_link = $out['to'];
curl_setopt($ch, CURLOPT_URL, $new_link);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
$output = curl_exec($ch);
$link = get_location($ch, $output);
echo $link;
?>
https://boom.ru/redirect/album/6101146?web=1
axios.interceptors.response.use((response) => {
return response;
}, function (error) {
// Do something with response error
if (error.response.status === 401) {
console.log('unauthorized, logging out ...');
auth.logout();
router.replace('/auth/login');
}
return Promise.reject(error.response);
});
data() {}
. Более устойчивое решение — сделать nuxt-плагин, который будет вставлять эти данные в прототип vue. Например, так:// plugins/nuxt-env-plugin.js
import Vue from 'vue';
Vue.use({
install(Vue) {
Vue.prototype.$env = {IMG_URL: process.env.IMG_URL}; // Vue.prototype.$env = process.env не сработает
},
});
// не забудьте подключить его в nuxt.config.js
<img :src="$env.IMG_URL + '/user-pic.jpg'">
. Только осторожно, не передавайте на клиент весь process.env, т.к. потенциальный злоумышленник может воспользоваться переменными окружения для организации атаки. везде написано по кусочкам
Почему нет возможности просто добавить серверный рендеринг в мой уже существующий проект?
Далее меня смущают отличия обычного приложения на vue от приложения на nuxt, а именно измененной структуры директорий и роутинга.
вместо простой отдачи файло nginx'ом, предстоит настроить обработку запросов через node
upstream myAppName {
server 127.0.0.1:3003;
}
server {
listen 80;
location / {
proxy_pass http://myAppName;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header User-Agent $http_user_agent;
proxy_cache_bypass $http_upgrade;
}
}
$.ajax()
Сейчас на месте ее появления крутится красивый прелоадер, а как это будет после переноса на nuxt? Страница будет рендериться эти пару секунд?
mounted() {
if (process.browser) {
this.fetchStats();
}
}
class Article
{
protected $appends = ['commaTags'];
}
public function getCommaTagsAttribute()
{
$this->tags->implode('name', ', ');
}