假设每当我进行CRUD操作或以特定方式修改关系时,我也想做其他事情.例如,每当有人发布帖子时,我也想将某些内容保存到表中进行分析.也许不是最好的例子,但总的来说有很多这种"分组"的功能.
通常我会将这种逻辑放入控制器中.在你想要在很多地方重现这个功能之前,这一切都很好.当你开始进入局部,创建一个API并生成虚拟内容时,就会出现干涸问题.
我看到管理它的方法是事件,存储库,库和添加到模型.以下是我对每个人的理解:
服务:这是大多数人可能会放置此代码的地方.我对服务的主要问题是,有时很难在其中找到特定功能,我觉得他们会忘记人们何时专注于使用Eloquent.我怎么知道我需要publishPost()在库中调用方法$post->is_published = 1?
我看到这个工作得很好的唯一条件是,如果你只使用服务(理想情况下,Eloquent不能以某种方式从控制器一起无法访问).
最终,如果您的请求通常遵循您的模型结构,这似乎只会创建一堆额外的不必要的文件.
存储库:从我的理解,这基本上就像一个服务,但有一个接口,所以你可以在ORM之间切换,我不需要.
事件:从某种意义上说,我认为这是最优雅的系统,因为你知道你的模型事件总是会在Eloquent方法中被调用,所以你可以像往常一样编写你的控制器.我可以看到这些变得混乱,如果有人有大型项目的例子使用事件进行关键耦合,我希望看到它.
模型:传统上我会有类执行CRUD并处理关键耦合的类.这实际上让事情变得简单,因为你知道CRUD的所有功能+无论如何都要做到这一点.
很简单,但在MVC架构中,这通常不是我所看到的.从某种意义上说,虽然我更喜欢这种服务,因为它更容易找到,而且需要跟踪的文件较少.但它可能会有点混乱.我想听听这种方法的失败,以及为什么大多数人似乎都没有这样做.
每种方法有哪些优点/缺点?我错过了什么吗?
如何对多维关联数组进行深度扩展(用于解码的JSON对象).我需要PHP的等价于jQuery的$.extend(true, array1, array2)数组而不是JSON和PHP.
这是我需要的一个例子(array_merge_recursive似乎没有做同样的事情)
$array1 = ('1'=> ('a'=>'array1a', 'b'=>'array1b'));
$array2 = ('1'=> ('a'=>'array2a', 'c'=>'array2b'));
$array3 = array_extend($array1, $array2);
//$array3 = ('1'=> ('a'=>'array2a', 'b'=>'array1b', 'c'=>'array2b'))
Run Code Online (Sandbox Code Playgroud)
注意如果array1具有相同的值,则array2将如何覆盖array1(如类的扩展如何工作)
根据Facebook和其他堆栈溢出问题,App Domain字段中支持子域,但是在"站点URL"字段(在"使用Facebook登录的网站"下),它们不是.我正在创建一个应用程序,用于许多不同的子域(实际上链接的子域,如http://clientname.projectname.mydomain.com),允许用户通过Facebook(通过js)登录,然后检索他们的数据(通过js和PHP).
如何设置您的Facebook应用程序,以便它支持多个子域?
我试过的事情:
有了我所有的包,我看到作曲家完成了,但只有当我让它一夜之间运行时.我根本无法部署锻造,因为它超时了!这只是在两周前开始发生的.
我有一个单页的javascript应用程序,我想知道我是否可以在Instagram上验证用户而无需刷新页面.我想尝试使用javascript执行类似于Facebook连接的操作,其中在弹出窗口中打开Facebook对话框,然后调用回调脚本.
这就是我想它会做的......
在我开始编码之前,我想我先问这里,如果这样做/不适用,或者其他建议,任何人都有任何想法!也许这已经存在,我错过了一些东西?
提前致谢 :-)
我需要有沿着我的主体div的左侧和右侧延伸的图像(实际上是在div下面的一种阴影效果).
如果不是因为我希望这个div可以扩展,而且我需要它在IE7和IE8中工作,我希望它能扩展到至少页面的底部.
我尝试使用polyfill来获得CSS3魔法,但他们也没有工作(我试过PIE和一些没有运气的过滤器).
我觉得我已经尝试了一切......这让我来到这里!这是我通过CSS/html获得的,我觉得我应该能够让它工作,但到目前为止还没有雪茄:
<div class="left-image">
<div class="right-image">
main body text
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
使用以下css:
html,body{
height: 100%
}
.left-image{
background: transparent url('image/url.png') repeat-y top left;
min-height: 100%; /*this alone works for making outer div extend browser & content height*/
min-width: 960px;
max-width: 1280px;
margin: 0 auto;
}
.right-image{
background: transparent url('image/url.png') repeat-y top left;
height: 100%; /*this only makes the div the height of its content*/
}
Run Code Online (Sandbox Code Playgroud)
这导致.left-image div填充浏览器窗口的高度或内容的高度(以较大者为准),但.right-image div仅适合内容的高度(因此,如果内容小于浏览器窗口它不会填充它).
有什么方法吗?只是使用jQuery?
我需要一种方法来检查并查看鼠标是否在浏览器窗口之外.问题是当鼠标RAPIDLY移动到浏览器窗口之外时(我的元素靠近边缘),不会触发mouseout事件(或mousemove).我认为解决我的问题的最好方法是检查一个计时器,如果鼠标在窗口内,或者我没有找到一种方法,因为我需要一个事件来触发以获得鼠标坐标.
我是一个javascript/jquery新手,但似乎应该有办法做到这一点但我到目前为止肯定无法找到它.也许我可以强制鼠标事件触发并查看是否有任何xy值?知道我怎么能这样做吗?
提前致谢!
jquery ×3
javascript ×2
laravel ×2
laravel-4 ×2
php ×2
array-merge ×1
composer-php ×1
cookies ×1
css ×1
events ×1
facebook ×1
fluid-layout ×1
forge ×1
html ×1
instagram ×1
json ×1
oauth-2.0 ×1
subdomain ×1