【问题标题】:php (if) condition is not working in laravelphp (if) 条件在 laravel 中不起作用
【发布时间】:2022-01-14 10:38:41
【问题描述】:
    <?php

    namespace App\Http\Controllers;

    use Illuminate\Http\Request;
    use DB;
    use App\Models\User;
    use App\Http\Requests;
    use Illuminate\Support\Facades\Auth;
    use App\Http\Controllers\Controller;
    use Redirect;

    class Insertlikes extends Controller
    {
        public function insertlikesform()
        {
            return view('dashboard');
        }
      
        public function insertlike(Request $request)
        {
          $book_id = $request->input('book_id');
          $user_id = Auth::user()->id;
          $user_name = Auth::user()->name;
          if(DB::select("select count(*) from likesrate where user_id='$user_id' and book_id='$book_id'")==0)
          {
            DB::insert('insert into likesrate (book_id,user_id,user_name) values(?,?,?)',[$book_id,$user_id,$user_name]);
          }
          else if(DB::select("select count(*) from likesrate where user_id='$user_id' and book_id='$book_id'")>0)
          {
            DB::delete("delete from likesrate where user_id='$user_id' and book_id='$book_id'");
          }
          return \Redirect::back();
        }
    }

我在 if 语句中给出了一个条件,但我不知道为什么不工作,但 else if 语句工作正常。如果数据已经存在,我想删除它,如果它不存在,我想插入一个数据。我可以知道一些适当的解决方案吗?

提前致谢

【问题讨论】:

  • 尝试检查您的DB::select(...) 语句的输出并验证它们是否包含您所期望的内容。
  • 来自Running Queries:“select 方法总是会返回一个结果数组。”
  • 类型杂耍...select 不返回整数,它返回一个潜在结果数组...[] == 0false[] &gt; 0true

标签: php sql laravel postgresql


【解决方案1】:

有问题:

if(DB::select("select count(*) from likesrate where user_id='$user_id' and book_id='$book_id'")==0)

查询不返回整数以将其与0 进行比较。

你可以做的是这样的:

$likes_count = DB::table("likesrate")->where("user_id", $user_id)->where("book_id", $book_id)->count();

if($likes_count == 0){
    // blah blah blah

【讨论】:

    猜你喜欢
    • 2017-07-10
    • 2014-03-21
    • 1970-01-01
    • 2020-03-11
    • 2020-04-05
    • 1970-01-01
    • 2017-09-25
    • 2021-04-28
    • 1970-01-01
    相关资源
    最近更新 更多