小编TrO*_*nNe的帖子

当变量为false时where子句不考虑进入SQL查询?

我有一些我不太了解的东西,我有解决方案,但我不知道为什么这会让我有点疯狂

调节器

DB::connection()->enableQueryLog();

$transfer = Transfer::where('ticket_id', $last_ticket)->where('event_id', 36)->where('buyer', $user_email)->first();

$queries = DB::getQueryLog();

dd($queries);
Run Code Online (Sandbox Code Playgroud)

结果

array:1 [
  0 => array:3 [
    "query" => "select * from `transfers` where `ticket_id` = ? and `event_id` = ? and `buyer` = ? limit 1"
    "bindings" => array:3 [
      0 => false
      1 => 36
      2 => "[email protected]"
    ]
    "time" => 0.36
  ]
]
Run Code Online (Sandbox Code Playgroud)

情况: $last_ticket在DB中是唯一的,永远不会null,空或false.

在我的例子$last_ticketfalse,但在DB中没有任何false,为什么我仍然得到结果?

是因为只要条件是假的,它就不会进入等式吗?

所以问题是:我如何才能收到正确的结果含义:如果$ last_ticket为false则没有结果,如果它有一些数据,则返回由$ last_ticket限制的行结果

一种选择可能是if($last_ticket …

php mysql sql laravel

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

"重"同时用户Nginx - Laravel - 谷歌计算引擎

我正在使用Laravel(中等静态网络)在nginx中运行服务器,并且我正在做例如在1分钟内500个恒定负载的同时用户(在那一分钟内不是分布式用户).

并收到此错误:

unix:/var/run/php/php7.1-fpm.sock失败 - 资源暂时不可用

cginx.conf

worker_processes auto;

events {
    use epoll;
    worker_connections 1524; #in my case it should be 1024, but well..
    multi_accept on;
}
http {
    #with this I reduce disk usage a lot
    client_body_buffer_size 10K;
    client_header_buffer_size 1k;
    large_client_header_buffers 2 1k;
    reset_timedout_connection on;

    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
Run Code Online (Sandbox Code Playgroud)

www.conf

pm.max_children = 500
pm.start_servers = 20
pm.min_spare_servers = 20
pm.max_spare_servers = 64
Run Code Online (Sandbox Code Playgroud)

使用Google计算引擎的结果:

f1-micro (1 vCPU, 0,6 GB) - Is supporting 40 - 60 requests per …
Run Code Online (Sandbox Code Playgroud)

php nginx laravel google-compute-engine

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

正则表达式,用于带错别字的全文搜索

我有一个包含以下各列的MySQL表:

City      Country  Continent
New York  States   Noth America
New York  Germany  Europe - considering there's one ;)
Paris     France   Europe
Run Code Online (Sandbox Code Playgroud)

如果我想找到带有错字的“ New Yokr”,那么使用MySQL存储函数很容易:

$querylev = "select City, Country, Continent FROM table 
            WHERE LEVENSHTEIN(`City`,'New Yokr') < 3"
Run Code Online (Sandbox Code Playgroud)

但是,如果有两个纽约城市,以全文搜索,则可以输入“ New York States”,您会得到想要的结果。

所以问题是,我可以搜索“ New Yokr Statse”并获得相同的结果吗?

是否有任何将levenshtein和全文本合并以形成一个完整解决方案的函数,还是应该在MySQL中创建一个将三列连接在一起的新列?

我知道还有其他解决方案,例如lucene或Sphinx(也有soundex,metaphone,但对此无效),但我认为对我来说可能很难实现。

php regex full-text-search regex-group levenshtein-distance

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

Laravel关系更改表列会产生未定义的属性

所以我在Laravel应用程序中更改了一个列的名称,并开始派对.

更改是从name_id到seller_id

在查看之前:

$transaction->user->first_name
Run Code Online (Sandbox Code Playgroud)

之前在控制器交易中:

class Transaction extends Model
{
    public function user(){
        return $this->belongsTo('App\User');
    }
 }
Run Code Online (Sandbox Code Playgroud)

在控制器调用视图之前和之后:

public function getInfoUser($name){

   $user = User::where('register_id', $name)->where('id', auth()->user()->id)->first();

   if($user){
   return view('users.user', compact('user'));
   }
}
Run Code Online (Sandbox Code Playgroud)

在视野中:

$transaction->seller->first_name
Run Code Online (Sandbox Code Playgroud)

在控制器事务之后:

class Transaction extends Model
{
    protected $primaryKey = 'seller_id';

    public function user(){
        return $this->belongsTo('App\User');
    }
}
Run Code Online (Sandbox Code Playgroud)

退货后:

Trying to get property of non-object (View: /Users/tronne/Documents/web/resources/views/users/user.blade.php) in c7128907204dffe6676c7d88cbbc47.php (line 108) 
at CompilerEngine->handleViewException(object(ErrorException), 0) in
PhpEngine.php (line 45)
at PhpEngine-evaluatePath('/Users/tronne/Documents/web/storage/framework/views/c7128907204dffe6676c7d88cbbc47.php', array('__env' => object(Factory), 'app' => object(Application), 'errors' …
Run Code Online (Sandbox Code Playgroud)

php mysql laravel

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

Laravel更改col名称"user_id"会使$ user未定义?

我的Laravel有一种奇怪的行为.

一切都工作得很好,但后来我决定将col名称"user_id"更改为"seller_id"

而且我也正确地更改了控制器中的列名称

public function transactions(){
    return $this->hasMany('App\Transaction', 'seller');
}
Run Code Online (Sandbox Code Playgroud)

然后我成功登录,并在一个视图中有这一行:

auth()->user->id
Run Code Online (Sandbox Code Playgroud)

返回我的错误:

"Undefined property:Illuminate\Auth\AuthManager :: $ user

我在互联网上看到我没有登录的错误和接缝,但我,任何线索?

谢谢

php laravel

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