我想使用给定的距离过滤我的数据库中的用户.
在数据库中,我有城市,经度和纬度.现在我们应该在城市和距离该城市的距离写作,脚本应该返回给定公里内该城市附近的所有用户.
我怎样才能做到这一点?
这是我的代码:
if ($request->has('city')) {
$from_latitude = app('geocoder')->geocode($data['residence'])->get()->first()->getCoordinates()->getLatitude();
$from_longitude = app('geocoder')->geocode($data['residence'])->get()->first()->getCoordinates()->getLongitude();
$user->whereHas('user_data', function($query) use ($request) {
$raw = \DB::raw('ROUND ( ( 6371 * acos( cos( radians('.$from_latitude.') ) * cos( radians( latitude ) ) * cos( radians( longitude ) - radians('.$from_longitude.') ) + sin( radians('.$from_latitude.') ) * sin( radians( latitude ) ) ) ) ) AS distance');
return $query->select('*')->addSelect($raw)->orderBy( 'distance', 'ASC' )->groupBy('distance')->having('distance', '<=', $distance);
});
}
Run Code Online (Sandbox Code Playgroud) 在模型中我得到了一个带有3个参数的作用域函数$query,$sort_by并且$sort_dir,我可以在join函数之前访问它们,但由于某种原因我无法在join函数内部访问它们.
为什么?我错过了什么吗?
public function scopeOrder($query, $sort_by=false, $sort_dir='ASC'){
if(!$sort_by)
return $query;
var_dump($sort_dir); //prints 'ASC'
return $query->join('product_translations', function($q){
var_dump($sort_dir); //variable undefined <----- ERROR
$q->on('product_products.id', '=', 'product_translations.product_id')->where('product_translations.locale', '=', 'de');
})->select('product_products.*')->orderBy('product_translations.name');
}
Run Code Online (Sandbox Code Playgroud) 我有一个模型,当发生条件时,我想在其中返回一个空值,但是当我尝试获取该模型时:
Model::with('shop')->find(id);
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
“在null上调用成员函数addEagerConstraints()”
这是我正在尝试的代码:
public function shop(){
if(true) {
return null;
}
return $this->belongsTo('App\Models\Shop');
}
Run Code Online (Sandbox Code Playgroud)
当Laravel关系中的条件为真时,如何正确地不返回任何内容?
我有注册表格,我需要隐藏提交按钮.在PHP中执行操作后,此按钮将可见.
我试图使用CSS类,它可以工作,但我不知道如何用PHP添加一个类.
这是我要更改的类的按钮:
<form method="post" action="register.php" name="registerform">
<input type="submit" name="register" value="registrovat" id="button8" class=I don't know what /><br><br>
</form>
Run Code Online (Sandbox Code Playgroud)
我的CSS:
#button8{
visibility: hidden;
font-family: century gothic;
color: #0099FF;
border: 2px solid #0099FF;
background: transparent;
}
#button8.visible{
visibility: visible;}
Run Code Online (Sandbox Code Playgroud)
我需要更改为button8.visible但是在PHP中(我的条件取决于MySQL数据).
编辑:
我需要它,因为按钮将基于代码可见.用户输入代码,按一下按钮.此操作将运行PHP:如果此代码在数据库中,则连接到mySQL查找.如果是,我需要我的按钮可见.由于我的知识水平较低,我想在mySQL的同一个PHP会话中使用if条件.这是整个代码:
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<title>Panákova? 4.0</title>
<link rel="stylesheet" type="text/css" href="mystyle.css">
</head>
</head>
<body>
</body>
</html>
<?php
// show potential errors / feedback (from registration object)
if (isset($registration)) {
if ($registration->errors) {
foreach ($registration->errors as $error) {
echo $error; …Run Code Online (Sandbox Code Playgroud)