我正在使用PHP编写应用程序,我需要在MySQL中存储一个独特的工作日列表.
在应用程序中,我有一个存储工作日的数组,如下所示:
$days = [
'Wed',
'Thu',
'Sat',
];
Run Code Online (Sandbox Code Playgroud)
我知道我可以使用一个SET列,但由于与我正在使用的框架(Laravel)不兼容,我更喜欢不使用此类型.
如何使用我仍然可以在存储值中搜索的格式保存此列表?例如,我想检索所有具有星期日的行.
我有以下表结构:
| products | product_options | product_option_values | product_option_to_product |
+----------+-----------------+-----------------------+---------------------------+
| id | id | id | id |
| | | | product_id |
| | | | product_option_id |
| | | | product_option_value_id |
Run Code Online (Sandbox Code Playgroud)
我的关系看起来像这样:
// Product.php
public function options()
{
return $this->belongsToMany('App\ProductOption', 'product_option_to_product', 'product_id', 'product_option_id')->withPivot('product_option_value_id', 'product_id');
}
// ProductOption.php
public function values()
{
return $this->belongsToMany('App\ProductOptionValue', 'product_option_to_product', 'product_option_id', 'product_option_value_id')->withPivot('product_id');
}
Run Code Online (Sandbox Code Playgroud)
现在,当我尝试这个:
$products = Product::with('options')->with('options.values')->first();
Run Code Online (Sandbox Code Playgroud)
要么
$products = Product::with('options.values')->first();
Run Code Online (Sandbox Code Playgroud)
我得到所有选项可能的值,因为它不使用产品ID来加载选项值.
有谁知道我怎么能确保它只加载属于该产品的值?
我可以在产品上直接与选项值建立关系,但我确实需要将它们附加到它们所属的选项上.
编辑:
我尝试了这样的连接:
$products = Product::with(['options.values' …Run Code Online (Sandbox Code Playgroud) 我正在尝试从从属服务器或MySQL实例设置MySQL数据库的每日备份.我的数据库是InnoDb和MyISAM表的混合体.我在另一台机器上安装了AutoMySQLBackup.我试图在AutoMySQLBackup的帮助下从该机器获取完整备份和MySQL数据库的每日增量备份.
I've been successfully using Mockery with PHPUnit tests lately. Yet, there is a dependency in a project I'm currently working that uses static method calls to interact with an API. I'm struggling to test one particular use case and it feels like I'll find other like this during the development roadmap.
Using this class as an example:
namespace Name\Space;
class User
{
/**
* @return \Name\Space\User[]
*/
public static function list(): array
{
// ...
}
public static function create(array …Run Code Online (Sandbox Code Playgroud) 我有一个users表,其中有一个名为 的整数字段ep。
现在,我想检索按 EP 字段排序的特定组中的所有用户,并使用生成的名为 的 MySQL 字段rank。
这是我尝试过的:
DB::transaction(function()
{
DB::statement("SET @rank:=0");
$group = Sentry::findGroupByName('Player');
$users = Sentry::getUserProvider()->createModel()
->join('throttle', 'throttle.user_id', '=', 'users.id')
->join('users_groups', 'users_groups.user_id', '=', 'users.id')
->where('throttle.banned', 0)
->where('throttle.suspended', 0)
->where('users_groups.group_id', $group->id)
->orderBy('ep', 'desc')
->paginate(100, array('@rank := @rank + 1', 'users.ep', 'users.username'));
});
Run Code Online (Sandbox Code Playgroud)
但我收到了这个错误:
SQLSTATE[42S22]: Column not found: 1054 Unknown column '@rank := @rank + 1' in 'field list' (SQL: select `@rank := @rank + 1`, `users`.`ep`, `users`.`username` from `users` inner join `throttle` …Run Code Online (Sandbox Code Playgroud) 我正在使用Carbon来操作从MySQL数据库中检索的日期.我有以下日期:
2017-07-19 00:00:002017-06-26 15:27:57如您所见,第一个是一天的开始.当显示这样的日期时,我想省略时间部分.我知道我可以为每个使用不同的格式.例如:
F d Y 没有时间的日期.F d Y g:ia 与时间的日期.我无法完成的是一种简单的方法来检查日期是否有时间部分来应用一种格式或另一种格式.我必须使用个人吸气剂来检查小时,分钟和秒吗?
当我在Chrome上运行以下代码时,控制台会显示Unexpected identifier异常.
var a = true;
var b = false;
switch (true) {
a:
window.alert('test A');
break;
b:
window.alert('test B');
break;
default:
window.alert('test C');
}
Run Code Online (Sandbox Code Playgroud)
我试图直接在控制台上运行代码,以保证错误不是由我的脚本上的其他行引起的,但我仍然收到异常.
我也通过谷歌寻找答案,但没有找到任何答案这种奇怪的行为.
谢谢.
Laravel 版本 4.1
在服务器和域上工作得很好,但我想将其开发到我的本地主机,但我无法登录。我没有收到错误消息,没有任何记录,也没有任何反应,希望我被重定向/login当我尝试登录时返回页面。我已更改session.php, 数据库连接到我的本地主机数据库并将app.php其指向http://localhost(我也尝试将其指向localhost和http://127.0.0.1)。数据库连接正常,登录页面(即首页)加载。文件权限/app/storage正确。
该脚本使用 Sentry2 进行身份验证。我可以尝试什么想法吗?
我有一个输入,保存优惠券的代码.用户可以填写自定义代码,但我想给他们一个默认代码.我现在有以下代码:
<input type="text" name="code" value="{{ form.code|default(RANDOM_CODE) }}">
Run Code Online (Sandbox Code Playgroud)
我想用RANDOM_CODE随机字符串替换.
我认为这与问题无关,但form.code包含原始优惠券代码.我使用相同的表格进行编辑.
根据Twig文档,可以使用random(),甚至从字符串中获取随机字符来生成随机数random('abcdefgh...'),但我想生成一个具有特定长度的随机字符串.
我知道我可以使用至少两种方法做到这一点:
知道如果有一种方法只使用Twig的内置函数生成随机字符串,我很好奇.
我只是想让我的头围绕着哨兵......它看起来很棒.
我只是想知道是否有功能来检查用户当前是否已登录?
我尝试过使用以下内容:
if(!Sentry::check()) return Redirect::to('login');
Run Code Online (Sandbox Code Playgroud)
但是如果用户没有登录,我会收到以下错误:
Call to undefined method Illuminate\Cookie\CookieJar::get()
Run Code Online (Sandbox Code Playgroud)
谁能为我解释这个问题?
谢谢.
php ×6
laravel ×5
mysql ×3
laravel-4 ×2
eloquent ×1
javascript ×1
laravel-5 ×1
mockery ×1
mysql-backup ×1
php-carbon ×1
phpunit ×1
syntax-error ×1
twig ×1