Просто сделайте
$type->products()->orderBy('price')->get();
или
Product::orderBy('price')->get();
Если вы хотите получить более подробный ответ, поделитесь большим количеством кода (модели, контроллеры и т. Д.), Чтобы я знал, как использовать разные модели / раствор
Для справки, проблема заключалась в том, что процесс, который пытался зашифровать раздел конфигурации, не имел прав администратора. Я добавил этот процесс в группу администраторов, и это решило его.
Вы прочитали это...
http://bytes.com/groups/net/521818-configurationerrorexception-when-reading-protected-config-section
... как это, кажется, разговор, вовлекающий инженера службы поддержки MSFT, который непосредственно отображается на Вашу ситуацию.
Лучший способ сделать это - зашифровать разделы app.config только во время установки. Добавьте класс установщика в ваш проект и переопределите метод Install в классе. В этом методе вы должны выполнить шифрование. Вы должны вызвать base.Install в конце вашего переопределенного метода Install. В Project Setup перейдите к Custom Actions и найдите настраиваемое действие Install, которое будет указано в выходных данных вашего проекта [exe или assembly], которые содержат определение реализации вашего класса Installer. Таким образом он зашифрует разделы app.Config во время установки, и вы не столкнетесь с этой проблемой. Приложение автоматически использует провайдера DPAPI для чтения / записи через разделы или настройки.
Надеюсь, это поможет.
Спасибо.
Рухит С.
Попробуйте это: http://blog.whconsult.com/2009/04/07/UnrecognizedAttributeConfigProtectionProvider.aspx
Попробуйте запустить свой Exe в отдельном домене приложений. Как только ваше приложение будет загружено в новый домен приложений, проверьте, зашифрованы ли разделы или нет. Если нет, то зашифруйте раздел и активируйте AppDomain для выгрузки и повторной загрузки с вашим исполняемым файлом.