我正在尝试执行此 SQL 语句并使用刀片引擎输出它:
" SELECT SUM(like) FROM likes WHERE post_id = ". $post->id. " AND source_id IS NOT '' "
Run Code Online (Sandbox Code Playgroud)
我不知道该怎么做,我昨天试过了,但没有成功:
{{$post->likes->where('post_id', $post->id)->where('source_id', '<>', '')->sum('like')}}
Run Code Online (Sandbox Code Playgroud)
喜欢表“属于”源表和帖子表。
编辑:
我正在使用 Laravel 版本5.2.45
我正在尝试删除特定列不包含某些字符串的所有行。像这样:
DELETE * FROM table
WHERE Disease NOT LIKE (Malaria, HIV, E. coli O157);
Run Code Online (Sandbox Code Playgroud)
我收到此错误: #1064 - 您的 SQL 语法有错误;第 1 行“* FROM 表 WHERE NOT LIKE(疟疾)”附近
所以,我正在尝试使用cURL获取API数据,但是我从下面的代码中的else语句中得到消息"fail".API调用是用于获取坐标的Google地理编码.
代码:
<?php
require_once('../db.php');
$api_key = "somekey";
$sqlQuery = mysql_query("SELECT `County` FROM `table`");
$ch = curl_init();
/* Fetch county */
while($rows = mysql_fetch_array($sqlQuery)) {
$countyArr = $rows['County'];
/* Call google API and save coordinates for each county */
curl_setopt ($ch, CURLOPT_URL, "https://maps.googleapis.com/maps/api/geocode/json?address=".$countyArr.",+CA&key=".$api_key."");
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
$json= curl_exec($ch, true);
$obj = json_decode($json);
if ($obj->status == "OK") {
$lat = $obj->results->location->lat;
$lng = $obj->results->location->lng;
echo $lat;
} else {
echo "fail";
}
}
curl_close($ch);
?>
Run Code Online (Sandbox Code Playgroud)
get_file_contents() …
我有这个控制器,它从一个帖子表中抓取帖子。posts表中的每个帖子都与另一个表likes有关系“hasMany” 。
控制器:
public function getDashboard(){
$posts = Post::orderBy('created_at', 'desc')->get();
return view('dashboard', ['posts' => $posts]);
}
Run Code Online (Sandbox Code Playgroud)
我想用以下内容替换“创建于”:
$post->likes->sum(like)
Run Code Online (Sandbox Code Playgroud)
不知道如何编写正确的语法。
编辑:
这是桌子。
Posts
--id
--body
Likes
--id
--post_id
--like
Run Code Online (Sandbox Code Playgroud)
像列的值可以是 1 或 -1。我想对每个帖子的该列的总和进行排序。因此,具有一个不喜欢(-1)和一个喜欢(1)的帖子的聚合值为 0,因此将放置在具有一个喜欢(1)的帖子之后。