Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Перепробовал многие решения для настройки, но все тщетно. У меня есть скрипт по адресу сайт.ру/скрипт.жс я хочу, что бы его можно было подключать как сторонную библиотеку с разных доменов, но у меня выходит что урл в браузере заблокирован(
Прошу подскажите, могу заплатить, если совет действительно поможет ибо перепробовал даже со стороны нгинкс настраивать
Не в сети
adblock?
Не в сети
Не в сети
для того чтобы подключить на страницу скрипт с другого домена CORS не нужен, а вот адблок может запросто залочить какой-то скрипт или картинку просто из-за неудачно выбранного имени – в его наборах есть совершенно идиотские правила…
Не в сети
можно с вами по емейлу списаться?
Написал вам через обратную связь или уточните куда написать?
Изменено adams (19.06.2017 14:40:04)
Не в сети
Просто я не использую его и пробовал с 3 браузеров, итог - скрипт (урл) заблокирован, смотрю через вкладку нетворкс
Изменено adams (19.06.2017 14:45:18)
Не в сети
спрашивай здесь. сделай скрин вкладки networks с ошибкой
Не в сети
Подключаю на страницу <script type="text/javascript" src="//site.com" async</script> или <script type="text/javascript" src="//site.com/1.js" async</script>
и выдает
но если перейти по урл scr то все нормально отдает, как только я вашею на поддомен где весит ларавел тоже все ок
Изменено adams (19.06.2017 16:12:07)
Не в сети
что-то с настройками веб-сервера – для первого запроса я вижу не до конца закрашенный зелёный замок – то есть 1.html открывается по https с валидным сертификатом, скрипты грузятся либо по http либо по https с невалидным сертификатом – ни то ни другое делать нельзя, любой браузер такие вещи блокирует без вариантов
Не в сети
Я специально не закрасил, я создал тестовую стр на другом своем сайте с валидным шттпс, там же подключаю скрипт src="//site.com/1.js" разве он сам не выберет протокол? (скрипт грузиться с сайта без шттпс), просто знаю когда указывал src="http://site.com/1.js" мне мозила сразу писала, что заблокирована часть смешанного контента, по этому я убрал "http:" и думал, что грузит нормально.
1)что вы имели введу под "что-то с настройками веб-сервера"? у меня стоит нгинкс + пхп фпм
2)если мой второй сайт использует протокол шттп, то мою либу можно подключить только на сайтах с шттп? если хочу, что бы и шттпс работал, то нужно купить сертификат и не настраивать пере адресацию? (что бы можно было и через шттп и через шттпс грузить)
Проясните пожалуйста, как писал выше могу оплатить. я чего-то думал что cors виноват
Изменено adams (19.06.2017 16:44:35)
Не в сети
cors не используется при подключении скриптов со сторонних ресурсов
//site.com… должен подключать по тому же протоколу что и документ – это верно, но там https должен быть настроен тоже – должен быть валидный сертификат, соответствующий домену на который отправляется запрос. если сертификат невалидный или выдан для другого домена – такой контент будет считаться «недоверенным» и будет заблокирован. это я и имею в виду под настройками веб-сервера
я вижу в скриншоте только зачёркнутый замок на хосте – значит надо смотреть открывать сведения о запросе и смотреть – какой протокол, какой сертификат, там скорее всего будет описание ошибки
по второму вопросу – если документ загружен по http – он может подключать ассеты (стили, скрипты, изображения) с любого хоста по http либо по https с валидным сертификатом (соответствующим домену, заверенным центром сертификации). если сайт загружен по https с валидным сертификатом – он может подключать ассеты только с хостов по https с валидным сертификатом. если сайт загружен по https с самоподписанным или невалидным сертификатом он может подключать ассеты либо с того же хоста либо с хостов по https с валидным сертификатом. это всё
покупать сертификат необязательно, сейчас даже на обычном хостинге как правило есть поддержка бесплатных сертификатов от lets encrypt.
Не в сети
На скрине где зачекнут замок идет шттп обычное, не более того, и вы про логи нгикса говорите "скрипты грузятся либо по http либо по https с невалидным сертификатом – ни то ни другое делать нельзя, любой браузер такие вещи блокирует без вариантов"?
Хотите сказать, что если я сделаю обычный самоподписанный сертификат, то сайты с валидным шттпс смогут спокойно загружать мою либу?(насчет самоподписанного, мне мозила вечно просит внести в исключение, по этому лучше приобрети)
Спасибо, я чуть позже перепроверю все! С меня как и говорил мини бонус полагается (напишите в пм номер вм кошелька, пришлю на пиво)
Пс. мини вопрос по https://laravel.ru/docs/v5/eloquent-relationships
Я правильно понимаю, что настройка отношений в итоге даст мне обьект с данными из 2 и тп. таблиц?
И что в продакшене будет производительней? С ларавелем работаю около месяца, но отношения пока не трогал, все данные получаю с помощью моделей Model::whereIn('id', Model2::where('key', '=', $value)->plunk('key', 'id')->toArray())->get(); мне кажется это менее затратным по ресурсам или ошибаюсь?
Изменено adams (19.06.2017 17:13:14)
Не в сети
На скрине где зачекнут замок идет шттп обычное, не более того, и вы про логи нгикса говорите
это не про логи нджинкса, это про политику безопасности браузеров в отношении https и доменов которые его используют
Хотите сказать, что если я сделаю обычный самоподписанный сертификат, то сайты с валидным шттпс смогут спокойно загружать мою либу?
не смогут. самоподписанный сертификат не считается валидным – браузер же не знает, кто его выдал, может быть кто-то кто перехватывает трафик и подсовывает свой левый код в страницы? https решает не только и не столько проблему шифрования, сколько обеспечение подлинности источника данных и контента который им предоставлен
С меня как и говорил мини бонус полагается (напишите в пм номер вм кошелька, пришлю на пиво)
у меня нет вм-кошелька, я тут на форуме не ради денег, просто работа скучная
мне кажется это менее затратным по ресурсам или ошибаюсь?
ошибаешься. то что ты описываешь уже реализовано в моделях, почитай раздел про «жадную загрузку» (eager loading в оригинальной документации) – оно как раз для того и сделано чтобы одним запросом можно было загрузить все связанные модели и разложить их куда нужно. это намного проще и работает эффективно
Не в сети
Уже глянул, надо подробнее вникнуть, я просто русскую версию смотрел, а это критическое "исправление", просто у меня уже прилично кода использует такие "зависимости", вот и думаю если ли смысл переписать? или можно оставить, а на будущее писать через https://laravel.com/docs/5.4/eloquent-r … one-to-one one-to-one мне же это подходит, если я хочу связать данные с одной таблицы с данными с другой? и последний вопрос, я правильно понимаю, что на выходе будет один объект с общими данными из двух таблиц?(или будет вложенность объектов?!)
Изменено adams (20.06.2017 12:09:35)
Не в сети
если ли смысл переписать?
да
one-to-one мне же это подходит, если я хочу связать данные с одной таблицы с данными с другой?
нет. тип связи определяется логикой того как одни записи принадлежат другим
я правильно понимаю, что на выходе будет один объект с общими данными из двух таблиц?(или будет вложенность объектов?!)
связи на моделях представлены как их атрибуты. для hasOne и belongsTo такой псевдоатрибут содержит единичную модель, для hasMany и belongsToMany – коллекцию моделей
Не в сети
Немного не ловко, но если можно уточню
namespace App;
use Illuminate\Database\Eloquent\Model;
class Post extends Model
{
/**
* Получить комментарии статьи блога.
*/
public function comments()
{
return $this->hasMany('App\Comment');
}
}
namespace App;
use Illuminate\Database\Eloquent\Model;
class Comment extends Model
{
/**
* Получить статью данного комментария.
*/
public function post()
{
return $this->belongsTo('App\Post');
}
}
1)Comment::find(1)->post; - работает
2)Comment::where('id', '=', 1)->post; - не работает, пишет Undefined property: Illuminate\Database\Eloquent\Builder::$post
3)Comment::find(1)->post(); - работает, но выводим много инфы и браузер виснет
Не могу понять по п.2 и п.3
и как работать с belongsTo если мне нужно выполнить условие в начале, пример выбрать книги где год 2001, а потом от выбранных айдишников(или айдишника) получить все авторов этих книг из другой таблицы....пока еще гуглю буржнет
Изменено adams (20.06.2017 18:34:29)
Не в сети
Или я не могу $name = Comment::whereIn('id', [....])->post; вот так сделать и получить на выходе обьекты комментс с вложеными в них обьектами пост или обьекты где для каждого ид коммента выводиться вся инфа по комменту + вся инфа по связанному с ним посту, я думал это отношения как раз и решают
Не в сети
2)Comment::where('id', '=', 1)->post;
Дело в том, что метод where() возвращает объект Eloquent\Builder, а динамическое свойство post описано в классе модели. Поэтому надо вернуть модель. Сделать это можно как в первом пункте или так
Comment::where('id', '=', 1)->first()->post
3)Comment::find(1)->post();
post() со скобками опять же возвращает не Post, а объект отношения, с возможностью дальнейшего построения запроса, как в предыдущем пункте, т.е.
3)Comment::find(1)->post()->where(...)->first();
По поводу связей очень пригодится жадная загрузка
Не в сети
Мне понравилось with(), спасибо!
кст а случайно не знаете, когда жму восстановить пароль приходит мыло, перехожу по ссылке, ввожу новый пасс, стр презагружается, но ничего нет ни ошибки ни сообщения, что все ок и войти со старым пасом не могу, в контролере ресет пассворд толком ничего нет, не пойму куда смотреть...
Не в сети
object(Illuminate\Support\ViewErrorBag)#180 (1) { ["bags":protected]=> array(1) { ["default"]=> object(Illuminate\Support\MessageBag)#181 (2) { ["messages":protected]=> array(1) { ["token"]=> array(1) { [0]=> string(28) "The token field is required." } } ["format":protected]=> string(8) ":message" } } }
смотрю переменку ероррс, хотя поле токен заполнено
Не в сети
https://laracasts.com/discuss/channels/ … bad?page=1
предлогают <input type="hidden" name="token" value="{{ $token }}">
хотя у меня это поле есть и выводиться с помощью {{ csrf_field() }}
Не в сети
да решил проблему)
но вышло, что передаеться 2 токена
<input name="_token" value="F9ZJEod7rUu6zzq3p3DmNgFeTRAcpQdY1i3IEuXj" class="has-value" type="hidden">
генерируемый и с письма
<input name="token" value="c4a8e6891e61b347667bd0214f49f0817995683e969b4ff7a3b0ef8e94f0ba88" class="has-value" type="hidden">
или это нормально?извините, что надоедаю))
Не в сети
хотя у меня это поле есть и выводиться с помощью {{ csrf_field() }}
этого токена достаточно, других не нужно
Не в сети
<input type="hidden" name="token" value="{{ $token }}">
пока не добавил это, при переходе по ссылке с емейла и ввода мыла + нового пароля, после отправки ничего не показывалось и не переадресовывало, таже стр с теми же полями + если вардампить переменку еррор то выводило
object(Illuminate\Support\ViewErrorBag)#180 (1) { ["bags":protected]=> array(1) { ["default"]=> object(Illuminate\Support\MessageBag)#181 (2) { ["messages":protected]=> array(1) { ["token"]=> array(1) { [0]=> string(28) "The token field is required." } } ["format":protected]=> string(8) ":message" } } }
{ ["token"]=> array(1) { [0]=> string(28) "The token field is required." }
вот
как тогда это испраивть?
Не в сети
Страницы 1