我希望能够使用JQuery Select2插件设置select元素的默认/选定值.
我使用Dingo和Laravel 5.1来创建简单的API.
所以在route.php我有:
$api = app('Dingo\Api\Routing\Router');
$api->version('v1', function($api) {
$api->get('getvoucher', 'App\Http\Controllers\BitemsController@index');
$api->get('update/{key}', 'App\Http\Controllers\BitemsController@update');
$api->post('store', 'App\Http\Controllers\BitemsController@store');
$api->post('authenticate', 'App\Http\Controllers\AuthenticateController@authenticate');
$api->post('logout', 'App\Http\Controllers\AuthenticateController@logout');
$api->get('token', 'App\Http\Controllers\AuthenticateController@getToken');
});
Run Code Online (Sandbox Code Playgroud)
我的BitemsController是:
public function index(Request $request)
{
$bitem = Bitem::where('key',$request->key)->where('id',$request->pin)->first();
return $bitem;
}
public function store(Request $request)
{
$bitem = new Bitem($request->all());
$bitem->save;
return $bitem;
}
Run Code Online (Sandbox Code Playgroud)
现在我使用POSTMAN应用程序来测试API,当我将GET发送到localhost时:8888/api/getvoucher一切都很好,但是当我发出POST请求来存储一些数据时,我得到了错误:
"message": "500 Internal Server Error",
"status_code": 500,
"debug": {
"line": 53,
"file": "C:\\wamp\\www\\dine\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\VerifyCsrfToken.php",
"class": "Illuminate\\Session\\TokenMismatchException",
"trace": [
Run Code Online (Sandbox Code Playgroud)
要解决此问题,我尝试添加:
protected $except = [
'api/*',
];
Run Code Online (Sandbox Code Playgroud)
在中间件VerifyCsrfToken.php中,但是工作.
请告诉我如何解决我的问题......
我从自己的电脑上下载并安装了Symfony 2.8.我复制了我的项目并将其粘贴到我们公司的电脑上.我还没有创建并连接到数据库.我试着这样做php app/console server:run,c:\xampp\htdocs\ninjaz\但之后我收到此错误消息.
Parse error: syntax error, unexpected ':', expecting ';' or '{' in C:\xampp\htdo
cs\Ninjaz\vendor\doctrine\annotations\lib\Doctrine\Common\Annotations\Annotation
Registry.php on line 50
编辑:我自己的电脑有XDSP和PHP 7.1.我们公司的PC有XAMPP PHP 5.5.19
这是AnnotationRegistry.php的内容:
<?php
namespace Doctrine\Common\Annotations;
final class AnnotationRegistry
{
/**
* A map of namespaces to use for autoloading purposes based on a PSR-0 convention.
*
* Contains the namespace as key and an array of directories as value. If the value is NULL
* the include path is used for …Run Code Online (Sandbox Code Playgroud) 假设用户在重定向到万事达卡进行支付后成功完成交易,但在重定向回vpc_ReturnURL提供给Omnipay驱动程序之前关闭浏览器,有没有办法自动处理?
我的页面上有以下选择:
<select><option value="1" selected="selected">Caption</option></select>
Run Code Online (Sandbox Code Playgroud)
我调用 select2 (v 4.0) init:
city.select2({
ajax: {
url: <...>,
data: <...>,
processResults: <...>,
cache: true
},
escapeMarkup: function(markup){ return markup; },
minimumInputLength: 0,
templateResult: function(repo){ return repo.name; },
templateSelection: function(repo){ return repo.name; }
});
Run Code Online (Sandbox Code Playgroud)
问题是 select2 正在重置默认选定值并显示空白字符串。有没有办法在 select2 init 上设置默认值?
我已经设法为启动时需要在数据库中的数据设置了相当数量的种子.一切都很简单并且运行良好,直到我需要使用默认日期播种DATE字段.
我试过以下......
DatabaseSeeder.php
class SettingsTableSeeder extends Seeder {
public function run()
{
Setting::create([
'name' => 'Start Date',
'date' => '2000-01-01'
]);
}
}
Run Code Online (Sandbox Code Playgroud)
在我的模型中,我被告知添加这应该修复它,但它没有.
Setting.php
protected $dates = [
'created_at',
'updated_at',
'date'
];
Run Code Online (Sandbox Code Playgroud)
每次我去运行播种机时都会抛出错误:
[InvalidArgumentException]
The separation symbol could not be found
Unexpected data found.
Trailing data
Run Code Online (Sandbox Code Playgroud)
如果我删除它改变的日期周围的引号..
[InvalidArgumentException]
The separation symbol could not be found
Data missing
Run Code Online (Sandbox Code Playgroud)
知道如何为DATE数据库字段播种默认值吗?
我需要facade在我的Laravel 5应用程序中设置一个别名,但我希望它仅在我的应用程序中可用local environment.
我想要添加的存储库是Laravel-Debugbar.
所以我Http/Providers/AppServiceProvider以这种方式注册了提供商:
public function register()
{
if( $this->app->environment() == "local")
{
$this->app->register('Barryvdh\Debugbar\ServiceProvider');
}
}
Run Code Online (Sandbox Code Playgroud)
如何为别名做同样的事情?
'Debugbar' => 'Barryvdh\Debugbar\Facade',
Run Code Online (Sandbox Code Playgroud) 当用户在浏览器上输入用户名和密码并成功登录时.
我喜欢在用户登录后发出一些API请求.
Laravel 5.3在routes文件夹中提供api.php.
在api.php我已经包括:
Route::group(['middleware' => ['auth']], function () {
Route::get('/test', function (Request $request) {
return response()->json(['name' => 'test']);
});
});
Run Code Online (Sandbox Code Playgroud)
在domain.com/api/test浏览器上请求时,由于某种原因它重定向到/home?
不需要API令牌.
如何使用自定义auth方法向通道认证用户?
例如,在我的应用程序中,我对API使用令牌身份验证(存储在每个用户的数据库中),该身份验证通过标头传递并由自定义中间件读取。
如何使用这些通道的自定义身份验证方法来控制访问?客户端和服务器端将如何?我正在使用socket.io,而Laravel文档尚不清楚auth方法如何用于套接字。
使用案例:
我有使用默认Laravel迁移存储在数据库中的用户。但是,我的应用只是API,它是无状态的,因此remember_token,我使用它来存储在登录端点中生成的唯一身份验证令牌,而不是用来存储会话令牌。
API的每个端点,请求都通过中间件传递,在中间件中,头中存在的令牌可检索用户
$token = Request::header('X-token');
$request->user = User::findByToken($token);
return $next($request);
Run Code Online (Sandbox Code Playgroud)
现在问题来了。Laravel文档尚不清楚私有渠道的工作方式。
广播客户端将如何传递上述令牌并获得加入指定频道的授权?
我有一个关于每次从DB检索数据时减少数据库连接的问题。我假设我有5个表格(通知,订单,用户,产品,交易)
在仪表板中,我必须显示:
最简单的方法(伪代码):
$notis = Notification::where('unread')->get();
$orderStat = Order::join('user')->where('count(order.id)', 'status')->groupby('status');
$product = Product::count();
$transactions = Transaction::join('user')->where('count(trans.id)', 'status')->groupby('status');
Run Code Online (Sandbox Code Playgroud)
因此,我必须运行4个单独的查询,正如我的导师说的那样,如果每个表中有很多记录,或者仪表板需要更多表(而不用于联接)进行查询,那么该解决方案将减少服务器的语音。
我已经做了:
我想问:对于上述情况,还有其他方法可以减少处理时间吗?。
和其他有关的问题connection pool,他说用它来提高速度。经过研究发现,Laravel已经建立了连接池,不是吗?
编辑:
用户有许多通知,订单,交易。
我只想问一下上面没有提到的提高性能的方法。
我有Groups,Users,GroupPositions,table.
关系:
用户所属的ToMany Groups
Users areToMany GroupPositions
Group hasMany GroupPositions
//users
public function groupPositions() {
return $this->belongsToMany(
'App\Models\GroupPositionView',
'vw_group_members',
'userId',
'groupPositionId');
}
public function groups() {
return $this->belongsToMany(
'App\Models\GroupView',
'vw_group_members',
'userId',
'groupId');
}
Run Code Online (Sandbox Code Playgroud)
我需要选择一个组,其中包含成员及其在该特定组中的相应位置.成员可以是具有不同职位的不同组的一部分.他可以成为一个团队的领导者,也可以是不同团队的经理.
目前,我有这个查询:
$group = GroupView::where('tag', $tag)
->with(['user.groupPositions'])
->get();
Run Code Online (Sandbox Code Playgroud)
它给了我所有成员的所有成员的所有职位.我想将其过滤到特定的组.
我也有这个:
$groupId = 1;
$group = GroupView::with(['users.groupPositions' => function($query) use($groupId) {
$query->whereHas('group', function($query) use($groupId) {
$query->where('groupId', $groupId);
});
}])
->where('groupId', $groupId)
->firstOrFail();
Run Code Online (Sandbox Code Playgroud)
这个工作.但是,问题是我需要通过标签获取组.如果我将所有groupId更改为tag,则它不再起作用.可能是因为groupPositions和我的vw_group_members没有标记列.
所以我的问题是,是否可以通过标签过滤我的查询?
php ×9
laravel ×7
eloquent ×2
javascript ×2
jquery ×2
laravel-5.3 ×2
ajax ×1
csrf ×1
dingo-api ×1
html-select ×1
laravel-5 ×1
laravel-5.5 ×1
mastercard ×1
middleware ×1
omnipay ×1
php-5.5 ×1
php-7.1 ×1
socket.io ×1
symfony-2.8 ×1