使用Laravel 4.2,是否可以为资源控制器路由分配名称?我的路线定义如下:
Route::resource('faq', 'ProductFaqController');
Run Code Online (Sandbox Code Playgroud)
我尝试在路由中添加名称选项,如下所示:
Route::resource('faq', 'ProductFaqController', array("as"=>"faq"));
Run Code Online (Sandbox Code Playgroud)
但是,当我点击/ faq路线并放置{{ Route::currentRouteName() }}在我的视图中时,它会产生faq.faq.index而不仅仅是faq.
在我的Laravel应用程序中,我有一个Faq模型.一个Faq模型可以包含很多Product的车型,所以在Faq类包含以下功能:
class Faq extends Eloquent{
public function products(){
return $this->belongsToMany('Product');
}
}
Run Code Online (Sandbox Code Playgroud)
在控制器中,我希望能够检索定义关系的类名.例如,如果我有一个Faq对象,像这样:
$faq = new Faq();
Run Code Online (Sandbox Code Playgroud)
如何确定关系的类名,在本例中为Product.目前我可以这样做:
$className = get_class($faq->products()->get()->first());
Run Code Online (Sandbox Code Playgroud)
但是,我想知道是否有办法在不必实际运行查询的情况下完成同样的事情.
我正在使用一个数据表,其中包含一列格式的mysql时间戳YYYY-MM-DD HH:MM:SS.我的表设置为最初按此列排序.数据表正确地自动检测时间戳格式并适当地排序.
我现在正试图改变这一列的外观,以便更加用户友好,但不会影响它的排序方式.所以,我正在使用这样的columns.render功能:
{
"data":"created_at",
"name":"date",
"visible":true,
"title":"Date Created",
"render": function(data, type, full, meta){
var date = new Date(data);
var options = {year: "numeric", month: "long", day: "numeric"};
return date.toLocaleDateString('en-US', options);
}
}
Run Code Online (Sandbox Code Playgroud)
一旦我这样做,排序不再正常.我的印象是该render函数应仅影响数据的显示,但仍应根据该行数据对象的基础数据进行排序.这些是我尝试使用的文档(http://datatables.net/reference/option/columns.render).
有谁知道我如何根据实际时间戳排序,但显示更友好的用户日期?
我正在查看ES6类定义,并且不理解构造函数的参数.这是班级:
export class Modal {
constructor($modal, {size = null,} = {}) {
// stuff
}
}
Run Code Online (Sandbox Code Playgroud)
我很困惑{size = null,} = {}.这是一个单一的论点吗?这是什么意思?
我在Laravel中设置了以下关系:
OrderStatus Model
- hasMany('Order')
Order Model
- 'belongsTo('OrderStatus');
Run Code Online (Sandbox Code Playgroud)
数据库设置有orders表和order_statuses表.该orders表有一个字段order_status_id.
当我保存订单时,我手动设置order_status_id通过获取相应的订单状态模型,如下所示:
$status = OrderStatus::where(['name'=>'sample_status'])->firstOrFail();
$order->order_status_id = $status->id;
$order->save();
Run Code Online (Sandbox Code Playgroud)
我想知道是否有内置函数来执行此操作而不是order_status_id手动设置.我在Laravel文档中读到了"附加相关模型"和"关联模型",但我无法弄清楚这些是否适合我的用例.我认为我遇到的问题是我正在直接使用子模型(顺序),并试图设置它的父模型.这有功能吗?
如何使用CSS在圆圈内水平和垂直居中加号?这是我的代码:
#container {
font-size: 20px;
display: block;
width: 20px;
height: 20px;
border-radius: 50%;
border: 2px solid black;
line-height: 16px;
text-align: center;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}Run Code Online (Sandbox Code Playgroud)
<span id="container">+</span>Run Code Online (Sandbox Code Playgroud)
这是一个jsfiddle:
http://jsfiddle.net/flyingL123/on44a0xq/
当我Chrome 46.0.2490.86 (64-bit)在Mac上查看它时,加号看起来不是垂直对齐的.它比圆形底部更接近圆形底部.这是我在小提琴中看到的截图:
我认为这将是直截了当的,但它让我疯了.知道如何垂直对齐加号吗?
请注意,Bootstrap css包含在小提琴中,因为我在我的项目中使用它.如果我从小提琴中移除Bootstrap,似乎加号移近了垂直居中.
我对这里读到的rails文档感到困惑.特别是这句话:
默认情况下,每个控制器都包含所有帮助程序.这些助手只能通过控制器访问
.helpers
这是什么.helpers,它是指什么?我有一个帮助定义在app/helpers/areas_helper.rb:
module AreasHelper
def my_helper
puts "Test from helper"
end
end
Run Code Online (Sandbox Code Playgroud)
我想在这个帮手中使用app/controllers/locations_controller.rb:
class LocationsController < ApplicationController
def show
helpers.my_helper
end
end
Run Code Online (Sandbox Code Playgroud)
但是,我得到一个方法未定义错误.这.helpers应该如何使用?
我知道还有其他方法可以访问控制器中的帮助程序,但我特别询问这篇文档以及它想说的内容.
当我第一次学习HTML时,我被告知如果要使用并排浮动2个div float:left,则必须在这两个元素上设置宽度.这是因为默认情况下,div是一个块元素,它将占用它可用的全部宽度.
当我构建各种项目时,我遇到了浮动在没有设置宽度的情况下无法工作的情况,但在其他情况下,似乎不需要宽度,浮动本身将限制元素宽度.
例如,以下小提琴显示仅使用float属性并排浮动的两个元素,不需要宽度.
<style>
.left{
background-color:yellow;
float:left;
}
.right{
background-color:green;
float:left;
}
</style>
<div class="left">
Floating left
</div>
<div class="right">
Floating left
</div>
Run Code Online (Sandbox Code Playgroud)
但是,在我现在似乎无法再现的其他类似场景中,将float属性应用于两个divs并不允许它们并排浮动,除非宽度是两者的集合.
我是否会失去理智,或者是否存在某种情况,这种行为会有所不同?
我在我的Ubuntu服务器上使用beanstalkd和supervisord运行一个名为"webhooks"的Laravel队列作业.我可以看到正确运行进程ID为4403的作业:
webhooks RUNNING pid 4403, uptime 4 days, 19:47:01
Run Code Online (Sandbox Code Playgroud)
如您所见,这项工作已经运行了4天.在我的错误日志中,我开始注意到出现以下错误:
error:02001018:system library:fopen:Too many open files
Run Code Online (Sandbox Code Playgroud)
当我跑去lsof | php查看哪些文件是打开的时,我注意到有大量打开的文件有类型FIFO.这是输出专家:
COMMAND PID TID USER FD TYPE DEVICE SIZE/OFF NODE NAME
php 4403 root 0r FIFO 0,8 0t0 9215811 pipe
php 4403 root 1w FIFO 0,8 0t0 9215812 pipe
php 4403 root 2w FIFO 0,8 0t0 9215812 pipe
php 4403 root 3w FIFO 0,8 0t0 9215812 pipe
php 4403 root 4w FIFO 0,8 0t0 9215812 pipe
php 4403 root …Run Code Online (Sandbox Code Playgroud) 在Vim中,我可以使用以下命令回显当前文件名:
:echo @%
Run Code Online (Sandbox Code Playgroud)
我在这里找到了这些信息:http://vim.wikia.com/wiki/Get_the_name_of_the_current_file
有人可以解释为什么@符号是必要的吗?如果我输入没有@符号的命令,我收到一个错误:
E15: Invalid expression: %
E15: Invalid expression: %
Run Code Online (Sandbox Code Playgroud)
但是,如果我尝试将文件名bang作为参数发送到命令,则包括@符号在参数中显示为常规字符.删除@标志工作.换句话说,在我.bash_profile我有以下功能:
test_func() {
echo $1
}
Run Code Online (Sandbox Code Playgroud)
在Vim中,我运行:
:! test_func @% #outputs @path/to/my/file
:! test_func % #outputs path/to/my/file
Run Code Online (Sandbox Code Playgroud)
什么是@符号做?为什么发送输出到bash函数时不同的表现?
laravel ×4
php ×4
css ×2
eloquent ×2
html ×2
javascript ×2
laravel-4 ×2
ajax ×1
bash ×1
beanstalkd ×1
datatables ×1
ecmascript-6 ×1
jquery ×1
supervisord ×1
vim ×1