使用laravel,我在表单上创建一个选择框.我一直在使用帮助器来创建选择框,一切正常.
我从数据库中检索选择框的数据,并使用以下内容检索数据:
$data = model::lists('name','id')
Run Code Online (Sandbox Code Playgroud)
再次一切正常,这将返回预期的数组
我的问题是,我似乎无法排序这个列表 - 我尝试添加orderBy()但没有快乐.
除了使用本机php函数之外,是否有一个laravel方法对列表进行排序?
我正在尝试使用laravel 4在我的网站中使用cartalyst哨兵2.基本上我不明白如何实现权限.
我见过的关于组权限的示例指定以下示例:
{
"name" : "Administrator",
"permissions" :
{
"user.create" : 1,
"user.delete" : 1,
"user.view" : 1,
"user.update" : 1
}
}
Run Code Online (Sandbox Code Playgroud)
这是为管理员组设置权限.但这些权限设置在哪里?
在表'groups'中有一个称为权限的字段,它是一个文本字段 - 它们是否设置在那里 - 如果是这样的话?或者这些设置在模型或控制器中?
任何人都可以指出我如何在laravel 4应用程序中使用?我已经阅读了支持文档的功能,但我不知道如何设置数据以使函数工作.
我正试图在laravel 4中开发一个包 - 我第一次尝试一个包.我发现了一些我试图遵循的教程:
http://jasonlewis.me/article/laravel-4-develop-packages-using-the-workbench
Run Code Online (Sandbox Code Playgroud)
和
http://culttt.com/2013/06/24/creating-a-laravel-4-package/
Run Code Online (Sandbox Code Playgroud)
当然还有官方文件.
我已经按照基本结构来创建框架.但是在加载应用程序时,我得到一个类未找到错误.这与我放在app.php文件中的serviceprovider直接相关.
这是我在providers数组中的条目:
'Longestdrive\Calendar\CalendarServiceProvider'
Run Code Online (Sandbox Code Playgroud)
我的文件夹结构是:
laravel/workbench/longestdrive/calendar/src/Longestdrive/Calendar
Run Code Online (Sandbox Code Playgroud)
我的服务提供商有以下条目:
<?php namespace Longestdrive\Calendar;
use Illuminate\Support\ServiceProvider;
class CalendarServiceProvider extends ServiceProvider {
/**
* Indicates if loading of the provider is deferred.
*
* @var bool
*/
protected $defer = false;
/**
* Bootstrap the application events.
*
* @return void
*/
public function boot()
{
$this->package('longestdrive/calendar');
}
/**
* Register the service provider.
*
* @return void
*/
public function register()
{
//
}
/**
* Get …Run Code Online (Sandbox Code Playgroud) 我正在尝试以多对多关系更新数据透视表中的其他列数据.
我有两个表 - 保留和资源与数据透视表链接.我可以附上并正在使用该模型.但是,我正在努力更新数据透视表中的一个附加列.
我有一个对象:'$ reservation'从该对象我创建了另一个对象$ resources使用:
$resources = $reservation->resource()->get();
Run Code Online (Sandbox Code Playgroud)
然后我按如下方式迭代$resources使用foreach循环
foreach($resources as $resource ) {...}
Run Code Online (Sandbox Code Playgroud)
然后我想更新一个名为gcal_id的列,并使用以下内容:
$resource->pivot->gcal_id = "TEST";
$resource->save();
Run Code Online (Sandbox Code Playgroud)
如果我var_dump模型,我可以看到属性存在正确的值,但在数据库本身,条目没有更新 - 所以保存不起作用
我在这两个关系中列出了列:
->withPivot('start', 'end', 'quantity', 'product_id','gcal_id')
Run Code Online (Sandbox Code Playgroud)
鉴于我有资源对象,如何在数据透视表中正确更新列并保存到数据库?
谢谢
我正在尝试使用mysql脚本检索的mysql数据在页面中创建一个简单的图表
我不明白如何将ajax调用与图表所需的数据集成.我不太了解各种图表插件,让我的生活变得轻松,目前正在尝试高级图表.
我的php脚本返回以下json:
[{"name":"golfers"},{"data":[5.7879,6.6286,6.1724,5.3125,7.1481,6.1333,4.5769]}]
Run Code Online (Sandbox Code Playgroud)
我的图表脚本是:
$(function () {
visitorData(function(data) {
console.info(data);
$('#chart1').highcharts({
chart: {
type: 'column'
},
title: {
text: 'Average Visitors'
},
xAxis: {
categories: ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']
},
yAxis: {
title: {
text: 'Number of visitors'
}
},
series: data,
});
});
});
Run Code Online (Sandbox Code Playgroud)
我的函数来进行ajax调用:
$.ajax({
url: '/visitdata',
type: 'GET',
async: true,
dataType: "json",
success: function (data) {
console.warn(data);
return data;
}
});
Run Code Online (Sandbox Code Playgroud)
但目前没有任何东西在展示.
我不确定如何有效地进行ajax调用并将其集成到图表函数中.我决定基于早期尝试和帖子的回调,以确保在创建图表之前返回数据 - 这一点是否正确?
我不是100%肯定json数据结构正确
我不确定我是否正确地将数据变量应用于系列
基本上 - 需要一个关于这个的教程,所以我可以让它工作和实验
所有帮助赞赏
谢谢
我正在尝试正确地在我的应用程序中设置哨兵包.
我可以登录和退出用户并保护路线,但我似乎无法redirect::intended正常工作.我的理解是,在被定向到登录页面之前,用户将被带回他们最初呼叫的路由.目前它只是保持重定向到默认页面.
在我的routes.php中,我设置了以下组:
Route::group(array('before' => 'sentryAuth'), function () {...}
Run Code Online (Sandbox Code Playgroud)
在这个小组中,我放置了所有受保护的路线.
在我的filters.php中,我有以下过滤器:
Route::filter('sentryAuth', function () {
if (!Sentry::check()) {
return Redirect::route('login');
}
});
Run Code Online (Sandbox Code Playgroud)
Route :: filter('sentryGuest',function(){
if (Sentry::check()) {
return Redirect::intended('dashboard');
}
});
Run Code Online (Sandbox Code Playgroud)
在我的userController中,我有以下代码:
public function postAuthenticate()
{
try {
// Set login credentials
$credentials = array(
'email' => Input::get('email'),
'password' => Input::get('password')
);
// Try to authenticate the user
$user = Sentry::authenticate($credentials, false);
} catch (Cartalyst\Sentry\Users\LoginRequiredException $e) {
echo 'Login field is required.';
}
catch (Cartalyst\Sentry\Users\PasswordRequiredException $e) { …Run Code Online (Sandbox Code Playgroud) 嗨,我正在尝试在Laravel 5.1中开发一个包.感谢这里的帮助,我已经设置了基础知识.
我目前的问题是如何在我开发它时加载包的依赖项.
在包中,composer.json我添加了依赖项,并将它们安装在我的包开发文件夹中的vendor文件夹中.这不是框架根供应商文件夹.
这是我的包的需求部分composer.json:
"require": {
"illuminate/support": "~5.1",
"php" : ">=5.3.0",
"google/apiclient": "dev-master"
},
Run Code Online (Sandbox Code Playgroud)
因为它们不是主要自动加载过程的一部分,所以确保从开发文件夹中正确加载我的包的依赖项的最佳方法是什么?如何加入自动加载?我担心如果我将它们引用到它们当前的位置/命名空间,它将在以后作为另一个应用程序中的包安装时中断.
在我的代码中我有以下内容:
$client = new \Google_Client($config);
Run Code Online (Sandbox Code Playgroud)
这给出了错误:
Class 'Google_Client' not found
Run Code Online (Sandbox Code Playgroud)
我可以通过将这个依赖项添加到主composer.json来解决这个问题,但是不认为这是保持包开发独立的正确方法(如果这是有道理的)
当我在L4.2中开发时,有一个工作台负责装载,当然L5.1中不再具有这些功能
任何帮助和最佳实践赞赏
我对谷歌api的痛苦继续......
我可以使用脚本来使用刷新令牌 - 自动刷新并保持我对日历的访问权.我可以与日历互动,一切都很好.
我现在想继续使用谷歌api客户端的PHP,我昨天工作,虽然我的令牌有效,但现在已经过期我无法弄清楚如何使用刷新令牌获取新令牌并保持在将来过期后进行身份验证.
我找到了很多引用并尝试了这些 - 这是我的测试脚本到目前为止基于simple.php的例子:
<?php
require_once '../../src/Google_Client.php';
require_once '../../src/contrib/Google_CalendarService.php';
session_start();
$client = new Google_Client();
$client->setAccessType('offline');
$client->setApplicationName("Downs Golfmanager");
// Visit https://code.google.com/apis/console?api=calendar to generate your
// client id, client secret, and to register your redirect uri.
$client->setClientId('XXXXXX.apps.googleusercontent.com');
$client->setClientSecret('XXXXXX');
$client->setRedirectUri('XXXXXX');
$client->setDeveloperKey('XXXXXX');
$client->refreshToken('X/XXXXX');
$client->setUseObjects(true);
$cal = new Google_CalendarService($client);
if (isset($_GET['logout'])) {
unset($_SESSION['token']);
}
if (isset($_GET['code'])) {
$client->authenticate($_GET['code']);
$_SESSION['token'] = $client->getAccessToken();
header('Location: http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']);
}
if (isset($_SESSION['token'])) {
$client->setAccessToken($_SESSION['token']);
}
if($client->isAccessTokenExpired()) {
/
echo 'Access Token Expired'; // …Run Code Online (Sandbox Code Playgroud) 我在使用laravel 4.1会话时遇到了问题并且出现了意外行为.
根据我调用控制器方法的方式,会话可以工作或不工作我的应用程序调用POST路由 - 将项目添加到作为会话的购物车.由于某种原因,会话不会更新.但是,如果我使用GET请求调用相同的函数,该函数将按预期工作.
我routes.php包含这两条路线:
Route::get('testAdd', array('uses' => 'ProductsController@addToCart'));
Route::post('products/addToCart', array('uses' => 'ProductsController@addToCart'));
Run Code Online (Sandbox Code Playgroud)
两者都指向相同的方法
该方法目前是这样的(用于测试):
public function addToCart() {
Session::put("addcarttest", "add to cart");
return json_encode(Session::get('addcarttest'));
}
Run Code Online (Sandbox Code Playgroud)
如果我使用POST方法调用该函数(使用表单数据),我会得到预期的结果和会话的内容.
但是,如果我然后检查会话(使用分析器)它不存在.数据没有持续存在.
如果我然后使用GET路由调用相同的方法,我得到预期的结果,但重要的是会话仍然存在.
我想也许POST方法删除了会话但是一旦它存在就会停留在那里 - 如果我使用GET方法并且sessin存在,如果我再次尝试POST方法示例会话保持原位 - 所以POST方法不会删除会话.
这让我发疯了 - 我已经失去了很多时间,看不出原因.
我错过了Laravel处理POST v GET的方法吗?为什么两种不同的方法会对底层函数产生影响?
我需要做什么才能使会话与POST一起正常工作?
更新:
我现在尝试了会话的数据库驱动程序,并获得了相同的行为.
我已经进一步测试了一个阶段 - 我创建了一个基本表单并提交给了url,并且该方法按预期工作.我目前的表单数据由jquery ajax提交,并假设它们在behviour中完全相同.
我的jquery提交函数是这样的:
$.ajax({
url: '/products/addToCart',
type: 'POST',
async: false,
})
.done(function() {
console.log("success");
})
.fail(function() {
console.log("error");
})
.always(function() {
console.log("complete");
});
return false;
Run Code Online (Sandbox Code Playgroud)
我将async设置为false - 我假设等待服务器响应.(如果是真的也不起作用).
所以问题是表单提交和ajax提交之间的细微差别.这两种方法都采用相同的路由和方法 - 一种方法保存会话数据 - …
我正在尝试开始使用vagrant进行开发 - 我完全不习惯使用vagrant进行开发 - 依赖于在笔记本电脑上设置的apache/php/mysql.
我正在使用laravel进行开发并且已经建立了宅基地并且正在运行.
我试过在宅基地启用SSL(盒子?)并按照这些说明进行设置:https://www.digitalocean.com/community/tutorials/how-to-create-a-ssl-certificate-on- nginx的换Ubuntu的12-04
我对我正在处理的网站的宅基地site_enabled文件进行了更改.
我在服务器内的端口80下面添加了端口443,添加了SSL On等条目
我重新启动了nginx服务器并能够使用https查看我的页面(虽然chrome不喜欢证书)
如果我然后尝试使用http访问页面我得到400错误 The plain HTTP request was sent to HTTPS port
所以有几个问题:1.如何更改设置以使用HTTP和HTTPS请求的组合?2.使用HTTP和HTTPS请求的组合服务网站是不好的做法 - 我应该只是将整个网站作为https服务吗?
对一个全新的主题非常困惑
谢谢
laravel ×8
laravel-4 ×4
php ×4
eloquent ×2
jquery ×2
ajax ×1
composer-php ×1
google-api ×1
highcharts ×1
javascript ×1
json ×1
session ×1
ssl ×1
vagrant ×1