我试图在每个记录(MySQL)的三个不同字段中选择最大日期所以,在每一行中,我有date1,date2和date3:date1总是填充,date2和date3可以是NULL或空GREATEST语句是简单而简洁但对NULL字段没有影响,所以这不能很好地工作:
SELECT id, GREATEST(date1, date2, date3) as datemax FROM mytable
Run Code Online (Sandbox Code Playgroud)
我尝试了更复杂的解决方案,如下所示:
SELECT
CASE
WHEN date1 >= date2 AND date1 >= date3 THEN date1
WHEN date2 >= date1 AND date2 >= date3 THEN date2
WHEN date3 >= date1 AND date3 >= date2 THEN date3
ELSE date1
END AS MostRecentDate
Run Code Online (Sandbox Code Playgroud)
这里的问题相同:返回正确的记录时,NULL值是一个很大的问题
拜托,你有解决方案吗?提前致谢....
我是CodeIgniter的新手,在我继续的时候遇到的问题是,在程序编码中,很容易修复
目前的问题是:我有这个控制器
class Basic extends Controller {
function index(){
$data['title'] = 'Page Title';
$data['robots'] = 'noindex,nofollow';
$data['css'] = $this->config->item('css');
$data['my_data'] = 'Some chunk of text';
$this->load->view('basic_view', $data);
}
function form(){
$data['title'] = 'Page Title';
$data['robots'] = 'noindex,nofollow';
$data['css'] = $this->config->item('css');
$data['my_other_data'] = 'Another chunk of text';
$this->load->view('form_view', $data);
}
}
Run Code Online (Sandbox Code Playgroud)
如您所见,一些数组项重复:
$data['title'] = 'Page Title';
$data['robots'] = 'noindex,nofollow';
$data['css'] = $this->config->item('css');
Run Code Online (Sandbox Code Playgroud)
难道没有办法让它们在控制器中"全局",所以我不必为每个函数键入它们吗?像(但这给我错误):
class Basic extends Controller {
// "global" items in the $data array
$data['title'] = 'Page Title';
$data['robots'] = …Run Code Online (Sandbox Code Playgroud) 有些站点位于共享主机(Windows 2003 Server)上,因此我无法访问服务器配置.
我到处读到有关杠杆浏览器缓存的信息,特别是对于静态文件(jpg,css,js等),但是......在我的情况下如何做到这一点?
主机安装了.NET,web.config文件可以以某种方式帮助吗?如果有,怎么样?
在我的"更新"页面中,我经常需要在页面加载和单击某个复选框上调用相同的jQuery函数,大多数情况如下:
function foo(){
if ($('#mycheckbox').is(':checked')){
$('.myclass').hide();
} else {
$('.myclass').show();
}
}
$(function() {
foo(); // this is launched on load
$('#mycheckbox').click(function(){
foo(); // this is launched on checkbox click
})
});
Run Code Online (Sandbox Code Playgroud)
在页面加载时,可以根据数据库值检查或不检查复选框:这就是为什么我需要启动foo(); 负载
嗯,这很好,但我总是想知道......是否有更好或最优雅的解决方案?提前致谢
在Laravel 5.3中,我试图捕获上传文件的文件大小是否大于upload_max_filesize.上传字段不是必需的.
我尝试过这种方法,但它不起作用
public function checkFile($field)
{
if (request()->hasFile($field)){ // check if field is present
$file = request()->file($field);
if (!$file->isValid()){ // now check if it's valid
return back()->with('error', $file->getErrorMessage());
}
}
}
Run Code Online (Sandbox Code Playgroud)
我不能使用只是if (!$file->isValid())因为文件字段是可选的,我得到一个Call to a member function isValid() on nullif字段是空的.
所以我必须检查字段是否存在使用if (request()->hasFile($field)),但这不适用于大文件,因为dd(request()->hasFile('picture'))返回false.
当然,我可以依赖默认的Laravel Validator消息,但是我得到一个The picture failed to upload.不给用户任何线索的假人.
我有一个简单的2列布局,我想使用Flexbox达到相同的高度:
HTML
<div class="row flex">
<!-- menu -->
<div class="col-xs-4">
<aside>
Menu goes here
</aside>
</div>
<!-- content -->
<div class="col-xs-8">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam ac elementum justo. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Phasellus nec elementum erat. Suspendisse consequat ut metus ut cursus. Aenean et lectus id libero venenatis varius. Vivamus luctus ligula sit amet faucibus vulputate. Vestibulum tincidunt fringilla mauris, a vulputate magna egestas nec. Vivamus …Run Code Online (Sandbox Code Playgroud) 我有运行良好的Laravel查询生成器代码段:
$records = DB::table('users')
->select(
DB::raw('users.*, activations.id AS activation,
(SELECT roles.name FROM roles
INNER JOIN role_users
ON roles.id = role_users.role_id
WHERE users.id = role_users.user_id LIMIT 1)
AS role')
)
->leftJoin('activations', 'users.id', '=', 'activations.user_id')
->where('users.id', '<>', 1)
->orderBy('last_name')
->orderBy('first_name')
->paginate(10);
Run Code Online (Sandbox Code Playgroud)
有没有一种方法可以避免使用原始查询并获得相同的结果?换句话说,我该如何以更具“查询生成器”的风格编写此代码?我还可以将其转换为口才查询吗?
谢谢
我在 Laravel 4 中使用默认的 Bootstrap 滑块导航,它工作得非常好:但现在我想通过两个自定义来改进它,但我不知道如何:
1:在开头添加“转到第一页”,如果我们在第一页则禁用;最后还有一个类似的“转到最后一页”,如果我们在最后一页,则禁用(请查看与默认 Laravel 内容相比箭头如何更改!我想使用“双箭头”(« 和 »)对于“转到第一个/最后一个”,以及一个单箭头(<和>)“转到上一个/下一个:
<ul class="pagination">
<li class="disabled"><span>«</span></li>
<li class="disabled"><span>‹</span></li>
<li class="active"><span>1</span></li>
<li><a href="http://laravel/games?page=2">2</a></li>
<li><a href="http://laravel/games?page=3">3</a></li>
<li><a href="http://laravel/games?page=4">4</a></li>
<li><a href="http://laravel/games?page=5">5</a></li>
<li><a href="http://laravel/games?page=6">6</a></li>
<li><a href="http://laravel/games?page=7">7</a></li>
<li><a href="http://laravel/games?page=8">8</a></li>
<li><a href="http://laravel/games?page=9">9</a></li>
<li><a href="http://laravel/games?page=10">10</a></li>
<li><a href="http://laravel/games?page=2" rel="next">›</a></li>
<li><a href="http://laravel/games?page=10" rel="last">»</a></li>
</ul>
Run Code Online (Sandbox Code Playgroud)
2:一次显示自定义数量的链接(即 5),而不是默认的长列表:
<ul class="pagination">
<li class="disabled"><span>«</span></li>
<li class="disabled"><span>‹</span></li>
<li class="active"><span>1</span></li>
<li><a href="http://laravel/games?page=2">2</a></li>
<li><a href="http://laravel/games?page=3">3</a></li>
<li><a href="http://laravel/games?page=4">4</a></li>
<li><a href="http://laravel/games?page=5">5</a></li>
<li><a href="http://laravel/games?page=2" rel="next">›</a></li>
<li><a href="http://laravel/games?page=10" rel="last">»</a></li>
</ul>
Run Code Online (Sandbox Code Playgroud)
或者
<ul class="pagination">
<li><a href="http://laravel/games?page=1" rel="first">«</a></li>
<li><a href="http://laravel/games?page=3" rel="prev">‹</a></li>
<li><a href="http://laravel/games?page=2">2</a></li> …Run Code Online (Sandbox Code Playgroud) 我注意到当使用mod_rewrite时,即使apache在端口8080上,PHP也会返回server_port 80.
即我有这个网址:http://myvirtualhost.8080/index.php和这个PHP片段:
<?php echo $_SERVER['SERVER_PORT']; ?>
Run Code Online (Sandbox Code Playgroud)
在.htaccess中我有这个简单的规则
RewriteEngine on
RewriteRule ^/?$ index.php [NC,L]
Run Code Online (Sandbox Code Playgroud)
使用mod_rewrite时,输出为"80"(错误)
关闭mod_rewrite,输出为"8080"(正确)
这是正常的吗?这个简单的解决方案?事实是我需要检查REAL服务器端口以在条件PHP脚本中使用,例如:
<?php
if ($_SERVER['SERVER_PORT'] == 80) {
do something
} else {
do something else
}
?>
Run Code Online (Sandbox Code Playgroud)
当然这实际上是不可能的,因为SERVER_PORT上的mod_rewrite总是80.我不想乱用.htaccess文件,所以PHP脚本解决方案会很棒......
提前致谢!
我有这个数组,从数据库生成:
do {
$rsvp_array[$row_rsRSVP['rsv_guest']] = array(
'id' => $row_rsRSVP['rsv_id'],
'guest' => $row_rsRSVP['rsv_guest'],
'confirmed' => $row_rsRSVP['rsv_confirmed']
);
} while ($row_rsRSVP = mysql_fetch_assoc($rsRSVP));
Run Code Online (Sandbox Code Playgroud)
它很好,有print_r()我得到这个:
Array
(
[1] => Array
(
[id] => 1
[guest] => 1
[confirmed] => 1
)
[15] => Array
(
[id] => 2
[guest] => 15
[confirmed] => 0
)
[5] => Array
(
[id] => 3
[guest] => 5
[confirmed] => 1
)
[10] => Array
(
[id] => 4
[guest] => 10
[confirmed] => 1
) …Run Code Online (Sandbox Code Playgroud) arrays ×2
php ×2
.net ×1
apache ×1
checkbox ×1
click ×1
codeigniter ×1
controller ×1
css ×1
css3 ×1
flexbox ×1
function ×1
html ×1
jquery ×1
laravel ×1
laravel-4 ×1
laravel-5 ×1
load ×1
max ×1
mod-rewrite ×1
mysql ×1
null ×1
pagination ×1
port ×1
static-files ×1
upload ×1
web-config ×1