我正在使用Laravel的功能firstOrNew()来创建新用户或查找和更新现有用户.
在创建对象之后,如果它之前存在或者它是新对象,我怎么知道?
这个想法是这样的:
$user = \App\User::firstOrNew([
'email' => $userData->getEmail(),
'name' => $userData->getName(),
]);
if ($user->new) { // some way to check
// user was created now
} else {
//user already existed
}
Run Code Online (Sandbox Code Playgroud) 我最近迁移到Laravel 5,现在每个帖子提交都会进行CSRF检查.我想要删除它,但我想遵循最佳实践,所以我会保持这种方式.
另一方面,我提交ajax请求时出现问题..我的页面有多个表单,有些提交甚至不是来自表单,只是简单的ajax调用.我的想法是在页面上有一个隐藏的"令牌"输入并将其附加到每个提交.拥有通用单一令牌输入有任何缺点吗?
另外,我该如何输出令牌?在页脚上创建一个隐藏的输入是否可以?
我永远是一个jQuery用户.但现在我正在构建我的第一个使用JWT进行身份验证的API.这就是说,我在网上发现的大多数教程使用带有身份验证标头的API来使用Axios来发出这些请求.
我已经在项目中使用了jQuery,所以,我很想做简单的jQuery ajax调用,但我不确定使用它是否有任何硬缺点.
这将是我的jQuery代码:
$.ajax({
url: "http://localhost:8080/login",
type: 'POST',
data: formData,
error : function(err) {
console.log('Error!', err)
},
success: function(data) {
console.log('Success!')
localStorage.setItem('token', data.id_token);
}
});
Run Code Online (Sandbox Code Playgroud)
发送请求
$.ajax({
url: "http://localhost:8080/login",
type: 'GET',
// Fetch the stored token from localStorage and set in the header
headers: {"Authorization": localStorage.getItem('token')}
});
Run Code Online (Sandbox Code Playgroud)
在阅读Axios功能后,最后一个是:客户端支持防范XSRF.jQuery ajax不支持吗?我还需要做些额外的事情来保护这个吗?还有什么能够使用像Axios这样的其他库而不是jQuery吗?
要在我的应用程序上插入社交登录集成,我将Socialite库添加到我的Laravel应用程序中.我有一个注册的facebook应用程序和laravel文档中的两个方法:http://laravel.com/docs/5.0/authentication#social-authentication
public function redirectToProvider()
{
return Socialize::with('github')->redirect();
}
public function handleProviderCallback()
{
$user = Socialize::with('github')->user();
dd($user);
}
Run Code Online (Sandbox Code Playgroud)
该请求成功提交并从Facebook返回,但一旦我到达回调URL:localhost:8000/social(其中handleProviderCallback())被调用,我收到以下错误:
RequestException.php第51行中的RequestException:cURL错误60:SSL证书问题:无法获取本地颁发者证书
我试过关闭我的防火墙,但没有成功..真的很沮丧,有人可以帮助我吗?
我正在使用 firestore 更新我的对象上的数组。我在文档中发现我可以执行数组联合和删除,这很棒,这是文档中给出的示例:
var washingtonRef = db.collection("cities").doc("DC");
// Atomically add a new region to the "regions" array field.
washingtonRef.update({
regions: firebase.firestore.FieldValue.arrayUnion("greater_virginia")
});
// Atomically remove a region from the "regions" array field.
washingtonRef.update({
regions: firebase.firestore.FieldValue.arrayRemove("east_coast")
});
Run Code Online (Sandbox Code Playgroud)
如您所见,对数据库有 2 个单独的查询,这使我的应用程序在数据库调用方面的成本增加了一倍,因此我想将它们组合在一个查询中,如下所示:
var washingtonRef = db.collection("cities").doc("DC");
washingtonRef.update({
regions: firebase.firestore.FieldValue.arrayUnion("greater_virginia"),
regions: firebase.firestore.FieldValue.arrayRemove("east_coast")
});
Run Code Online (Sandbox Code Playgroud)
不幸的是,这不起作用,只有最后一个命令被执行。
有没有办法让它发挥作用?
我需要在laravel应用程序上以高精度存储updated_at时间戳,格式为"mdY H:i:su"(包括milisseconds)
根据laravel文档,我可以通过在类上设置$ dateFormat属性来自定义日期格式,但是......
主要的问题是当我使用$ table-> nullableTimestamps()时,Laravel的模式构建器在数据库中添加了一个类型为timestamp的列.根据mysql文档,TIMESTAMP类型的列只允许精度达到秒.
关于如何实现这一目标的任何想法?
我来自Mysql背景,现在我正在使用Pouchdb.我已经习惯了每个应用程序拥有1个数据库和多个表的SQL模式.
在pouchDB中它是不同的,因为数据不存储在表中而是存储在文档中.所以,在我的应用程序中,我有一个任务数据库,创建时:
var db = new PouchDB('tasks', {revs_limit: 1, auto_compaction: true});
Run Code Online (Sandbox Code Playgroud)
这是我的应用程序的主数据库,但现在我还需要存储设置,例如"last_visit_date","language_preference"等.
所以,我有两个问题:
我正在检查维护模式的Laravel文档:
https://laravel.com/docs/5.3/configuration#maintenance-mode
执行该命令时php artisan down,它将使应用程序处于维护模式,并返回503.blade.php视图.
工作得很好,但有一个选项,我不能真正做工作..当我这样做:
php artisan down --message='Upgrading Database' --retry=60
Run Code Online (Sandbox Code Playgroud)
我想在视图中显示消息,我尝试访问明显的选择{{ $message }}但没有成功,返回undefined变量.
我的问题是:如何访问它?
我想在我的vue.js应用程序中从动态变量名加载一个组件.
我注册了以下组件:
<template id="goal">
<h1>Goal:{{data.text}}</h1>
</template>
Run Code Online (Sandbox Code Playgroud)
而不是像这样加载它
<goal></goal>
Run Code Online (Sandbox Code Playgroud)
我想从变量名加载,如下所示:
<{{mytemplate.type}}></{{mytemplate.type}}>
Run Code Online (Sandbox Code Playgroud)
当然,mytemplate.type会在哪里,在这种情况下等于"目标"