在调用mysql_select_db
抓取数据库之后,有没有办法稍后输出当前选择的数据库的名称?这似乎非常基本,但我在php.net或stackoverflow上找不到任何东西(所有结果都是"没有选择数据库").
升级到Laravel 5.2后,我的.env
文件值都没有被读取.我按照升级说明进行操作 ; 除了auth.php之外,我的配置文件都没有被更改.它们在之前的版本5.1.19中都运行良好
.env
包含诸如的值
DB_DATABASE=mydb
DB_USERNAME=myuser
Run Code Online (Sandbox Code Playgroud)
config/database.php
包含
'mysql' => [
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
]
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
PDOException: SQLSTATE[HY000] [1045] Access denied for user 'forge'@'localhost' (using password: NO)
Run Code Online (Sandbox Code Playgroud)
显然没有拉我的env配置.这会影响我的每个配置文件,包括第三方,如bugsnag.
我也试过了
php artisan config:clear
php artisan cache:clear
Run Code Online (Sandbox Code Playgroud)
更新
试 php artisan tinker
>>> env('DB_DATABASE')
=> null
>>> getenv('DB_DATABASE')
=> false
>>> config('database.connections.mysql.database')
=> "forge"
>>> dd($_ENV)
[]
Run Code Online (Sandbox Code Playgroud)
我尝试安装Laravel 5.2的新副本.我基本上只复制在我的"app"文件夹中; 没有包含额外的作曲家包.还有同样的问题.我在同一台服务器上有其他Laravel 5.2项目正常工作.
我很难理解什么时候strtr
会更好,str_replace
反之亦然.看起来使用任一函数都可以获得完全相同的结果,尽管替换子串的顺序是相反的.例如:
echo strtr('test string', 'st', 'XY')."\n";
echo strtr('test string', array( 's' => 'X', 't' => 'Y', 'st' => 'Z' ))."\n";
echo str_replace(array('s', 't', 'st'), array('X', 'Y', 'Z'), 'test string')."\n";
echo str_replace(array('st', 't', 's'), array('Z', 'Y', 'X'), 'test string');
Run Code Online (Sandbox Code Playgroud)
这输出
YeXY XYring
YeZ Zring
YeXY XYring
YeZ Zring
Run Code Online (Sandbox Code Playgroud)
除了语法之外,使用one还是其他有什么好处吗?任何人不足以达到预期结果的情况?
有没有办法轻松克隆Eloquent对象,包括它的所有关系?
例如,如果我有这些表:
users ( id, name, email )
roles ( id, name )
user_roles ( user_id, role_id )
Run Code Online (Sandbox Code Playgroud)
除了在users
表中创建一个新行,除了所有列都相同之外 id
,它还应该在user_roles
表中创建一个新行,为新用户分配相同的角色.
像这样的东西:
$user = User::find(1);
$new_user = $user->clone();
Run Code Online (Sandbox Code Playgroud)
用户模型的位置
class User extends Eloquent {
public function roles() {
return $this->hasMany('Role', 'user_roles');
}
}
Run Code Online (Sandbox Code Playgroud) 兼容模式下的Internet Explorer以ajax回调方法从服务器获取数据,如果我想保存数据或打开,则会弹出一个对话框.如何摆脱它?
客户说:
$.ajax({
type:'POST',
data: $("#UIdlgHolder > form").serialize(),
url: $("#UIdlgHolder > form").attr("action"),
success: function (data, textStatus, jqXHR) {
{
alert(data.message);
}
}
Run Code Online (Sandbox Code Playgroud)
服务器答案:
return new JsonResult { Data = new { result = false, message = "Yay!" } };
Run Code Online (Sandbox Code Playgroud) 在所示的模态中有一个表格.如果我专注于输入字段(任何字段)并按ESC键,则隐藏该模态.但是,如果我不关注表单字段,则按ESC键不会关闭模式.这是怎么回事?
我想完全禁用模态的ESC键功能.我试过这个:
$(document).on('keypress', function(e) {
if(e.keyCode == 27) {
e.preventDefault();
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
但这不会影响任何事情.有没有办法完全禁用模态的ESC键?
我有一个MySQL BIGINT,我存储在HTML5数据中.然后我试图访问该值并通过AJAX调用传递它.
<div data-id="211285677671858177">
Run Code Online (Sandbox Code Playgroud)
和JavaScript:
var send_data = {
id: '' + $(this).data('id')
}
$.post('/send.php', send_data);
Run Code Online (Sandbox Code Playgroud)
问题是jQuery data
函数似乎将该值检索为浮点而不是字符串.所以将它附加到空白字符串并没有帮助,因为它已经太晚了 - 它已经被舍入(在这种情况下211285677671858180
).我该怎么做才能解决这个问题?
为什么我们不允许在PHP中使用类扩展Traits?
例如:
Trait T { }
Class C use T {}
/* or */
Class C extends T {}
Run Code Online (Sandbox Code Playgroud)
这种语法有没有潜在的冲突?我不这么认为.
众所周知,json_decode
您可以选择返回关联数组或对象.在许多其他情况下我们也有两种选择.显然,在某些情况下,根据您正在处理的数据类型(一个项目与项目列表相关的一组数据),使用一个或另一个更"合适".
我想知道的是,在内存,速度等方面,使用一方与另一方的效率有什么不同?我对一个非常大的对象的访问时间特别感兴趣 - 这与一个非常大的数组相比如何?为什么?
对不起,如果之前已经讨论过这个问 我正在写一个基准,可能会告诉我哪一个更好,但不会帮助我理解原因.
在玩Apache时,我搞砸了路径而没有制作备份httpd.config文件.
该文件位于C:\ xampp\apache\conf\httpd.config
我想将我的Web项目作为虚拟文件夹保存在D:驱动器上.这是当前的非工作状态.我该如何解决这个问题或恢复到xampp默认值?
ServerRoot "C:\xampp\apache"
DocumentRoot "D:\workspace"
<Directory "D:\workspace\AutionWebSite">
Run Code Online (Sandbox Code Playgroud) php ×4
jquery ×2
laravel ×2
apache ×1
arrays ×1
clone ×1
eloquent ×1
javascript ×1
laravel-4 ×1
laravel-5.2 ×1
mysql ×1
object ×1
oop ×1
performance ×1
str-replace ×1
string ×1
strtr ×1
traits ×1
xampp ×1