小编Jos*_*sch的帖子

在PhpStorm中雄辩的ORM代码提示

所以我刚开始使用Laravel(使用v5)和Eloquent.我正在努力获得一些基本的API并注意到很多工作方法都没有出现在PhpStorm的代码提示中

所以我有这个模型:

namespace Project\Models;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract;
use Illuminate\Contracts\Auth\CanResetPassword as CanResetPasswordContract;

class User extends Model 
    implements AuthenticatableContract, CanResetPasswordContract {
}
Run Code Online (Sandbox Code Playgroud)

在我的一个控制器中,我尝试做

User::query()->orderBy('id', 'desc');
Run Code Online (Sandbox Code Playgroud)

User::query()创建一个Eloquent Builder对象,orderBy()行为正确,没有错误.但是,当我输入时,PhpStorm不显示orderBy()(或者take(),skip()我确定其他人),User::query()->并在我实际使用它时发出警告.

我正在使用Laravel IDE Helper,它非常有助于为Facades提供代码提示,但不会对它看起来的模型/构建提供帮助.

有人有解决方案吗?

php phpstorm laravel eloquent

23
推荐指数
6
解决办法
2万
查看次数

如何投射雄辩的枢轴参数?

我有以下Eloquent模型与关系:

class Lead extends Model 
{
    public function contacts() 
    {
        return $this->belongsToMany('App\Contact')
                    ->withPivot('is_primary');
    }
}

class Contact extends Model 
{
    public function leads() 
    {
        return $this->belongsToMany('App\Lead')
                    ->withPivot('is_primary');
    }
}
Run Code Online (Sandbox Code Playgroud)

数据透视表包含一个额外的param(is_primary),用于将关系标记为主要关系.目前,当我查询联系人时,我看到这样的返回:

{
    "id": 565,
    "leads": [
        {
            "id": 349,
             "pivot": {
                "contact_id": "565",
                "lead_id": "349",
                "is_primary": "0"
             }
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

有没有办法将is_primary其转换为布尔值?我已经尝试将它添加到$casts两个模型的数组中,但这并没有改变任何东西.

php laravel eloquent laravel-5

19
推荐指数
3
解决办法
8967
查看次数

在Lollipop中的软导航栏覆盖应用程序

在我的Nexus 5上的Android Lollipop(最近的开发预览,构建LPX13D)中,我正在编写的应用程序似乎隐藏在软导航栏(带有Back,Home和App History按钮的栏)下方.我无法在运行Kit Kat的Nexus 4上复制它(没有任何内容隐藏在导航栏后面).

我该怎么做才能缩小应用程序的视口,以便在屏幕上看到我的所有内容?

编辑:

截图,根据要求.

运行Kit Kat的Nexus 4(4.4.4): 在此输入图像描述

Nexus 5运行Lollipop(5.0,LPX13D): 在此输入图像描述

android android-5.0-lollipop

13
推荐指数
1
解决办法
5304
查看次数

获取Adobe AIR Mobile中软键盘的高度

我们正在尝试规划将部署到Android和iOS的移动AIR应用程序.我们的设计团队返回的一个屏幕是一个全屏文本编辑器,从屏幕顶部到键盘.如果我不能以编程方式抓住键盘的高度,我显然不能这样做.有没有办法做到这一点?

我知道在iOS中它是可能的,在Android中它似乎是不可能的.我没有创建ANE的问题,但如果数据已在AIR中可用,我宁愿避免使用它.或者,我可以假设键盘的大小是屏幕尺寸的1/2,这在大多数情况下都适用于iOS.

简而言之,在AIR中可以获得软键盘的高度吗?

apache-flex air actionscript-3

9
推荐指数
1
解决办法
3910
查看次数

可以根据嵌套级别更改背景颜色吗?

我有一个有序列表,可能有无限量的嵌套列表.我希望动态更改background-color每个嵌套列表,以便逐渐变暗,使每个列表的分组更容易理解.

所以我有这个基本结构(可以无限延续):

<ol class="top-level-list">
    <li>
        <ol>
            <li>
                <ol>
                    <li></li>
                </ol>
            </li>
        </ol>
    </li>
</ol>
Run Code Online (Sandbox Code Playgroud)

现在,我可以使用以下内容完成此操作:

.top-level-list li ol li ol li {
    background: #D4D4D4;
}

.top-level-list li ol li ol li ol li{
    background: #C7C7C7;
}
Run Code Online (Sandbox Code Playgroud)

这给了我想要的东西,但它限制了我可以使用多少级别,每个级别为我的CSS文件添加越来越多的数据,导致更长的加载时间.

有没有办法用一个选择器动态设置颜色?我知道CSS3添加了一些新的CSS选择器技巧,但我找不到任何记录这样的东西.我也找不到在选择器中使值对应于选择器本身的方法.

css

7
推荐指数
1
解决办法
1373
查看次数

是否可以在ActionScript 3中更改继承的访问修饰符?

我正在开发一个项目,我从其他类继承的大量类继承自其他类,依此类推.它可能比它应该更复杂,但我是抽象的傻瓜.

无论如何,有时我需要将getter/setter从公共更改为私有.我想这不是一个需要,而是希望切断子类中预设的东西,但仍需要在父类中公开访问.

所以一个例子是:

Class Base {
    public function set label( value:String ):void{};
}

Class A extends Base {}

Class B extends A {
    public function B() {
        super();
        this.label = "stuff";
    }

    override public function set label( value:String ):void {
        //this setter should not be publicly available since the label should not be possible to change in this class
    }
}
Run Code Online (Sandbox Code Playgroud)

目前,在这些情况下,我正在做两件事之一:

  1. 覆盖setter不执行任何操作或将其设置为默认值,以便它仍然可以更新/渲染/无论如何
  2. 抛出一个错误,说它在该类中不可用

我做了一些搜索,一切似乎都指向这是不可能的,但我从未发现它明确表示这是不可能的.那么是否可以在继承的属性/函数上更改访问修饰符?

actionscript-3

1
推荐指数
1
解决办法
239
查看次数

如何将空中原生扩展添加到舞台

我需要在我的Flex Mobile应用程序中使用Android SDK显示用Java编写的Activity.我已经看到它使用Map ANE完成,但找不到任何示例代码或任何类型的东西.我已经创建了我的ANE工作所需的Java和ActionScript代码(创建了活动,真正桥接Java和AS3所需的所有类,事件和方法都在那里),我只是无法弄清楚如何添加它到了舞台.我知道它不能添加到DisplayList中,我很好,它是一个舞台对象.

如果它有帮助,我试图使用MediaPlayer显示视频(由于使用AS3/Flex完成MP4流媒体问题).

迈克尔(2012年8月27日@M:00上午9:44):

08-27 09:27:07.836: I/CS VideoInit(2567): context is set
08-27 09:27:07.836: I/CS VideoInit(2567): intent is instantiated 
08-27 09:27:07.836: I/ActivityManager(349): START {cmp=air.AndroidANETesting2/xi.video.android.extension.VideoActivity u=0} from pid 2567
Run Code Online (Sandbox Code Playgroud)

我活动的第一行是

Log.i("CS VideoActivity","Made it inside the activity somehow");
Run Code Online (Sandbox Code Playgroud)

这是我的Java.这是init函数:

VideoInit.context = context;
Log.i("CS VideoInit","context is set");
Intent intent = new Intent( context.getActivity(), VideoActivity.class );
Log.i("CS VideoInit","intent is instantiated");
context.getActivity().startActivity( intent );
Log.i("CS VideoInit","Activity is started");
context.dispatchStatusEventAsync("PLAY", "PLAY");
Run Code Online (Sandbox Code Playgroud)

这是我的VideoActivity onCreate():

super.onCreate(savedInstanceState);
Log.i("CS VideoActivity","Made it inside the activity somehow");
Run Code Online (Sandbox Code Playgroud)

我的Manifest for good measure(只是申请部分): …

apache-flex air android actionscript-3 air-native-extension

0
推荐指数
1
解决办法
1933
查看次数

Laravel验证日期与格式不符

我想在Laravel中验证一个日期.我datepicker在前端使用JavaScript,以这种格式将日期发送到服务器Laravel dd-MMMM-yy:

$scope.formData.dob = $filter('date')(scope.formData.dob, 'dd-MMMM-yy');
Run Code Online (Sandbox Code Playgroud)

我的laravel有这样的验证:

$validator = Validator::make($postData, [
             'dob'       => 'date_format:"dd-MMMM-yy"',
         ]);
Run Code Online (Sandbox Code Playgroud)

但是验证器一直说日期与格式不符dd-MMMM-yy:

dob与格式dd-MMMM-yy不匹配.

我想也许它与格式类型有关,所以我尝试将它改为不同的格式,如d/m/y,dd-mm-yyyy等......在JavaScript日期和Laravel日期验证中但是一切都在说同样的错误日期不匹配.输出似乎很好,它是我在验证中提到的格式.我不明白为什么Laravel验证失败了.

我在这里错过了什么吗?

date-format laravel laravel-5 laravel-validation laravel-5.1

0
推荐指数
1
解决办法
2465
查看次数