php - 找不到列 : 1054 Unknown column 'users.blog_id' :SQL: select * from `users` where `users` .`blog_id` = 1 and `users` .`blog_id` is not null

标签 php mysql laravel eloquent

blogsIndex.blade.php

@extends('layouts.default')

@section('details')
    <div class="container">
            <div class="alert alert-warning alert-dismissible fade show" role="alert">
                <button type="button" class="close" data-dismiss="alert" aria-label="Close">
                    <span aria-hidden="true">&times;</span>
                </button>
                Hello <strong> {{auth()->user()->name}}</strong> !!!  You can not find blogs from another Departments.
            </div>
    </div>
@endsection

@section('gotoLogins')
    @if(count($blogs) > 0)
    @foreach($blogs as $blog)
    <div class="container-fluid">
        <div class="card">
            <div class="card-body ">
                <div class="col-md-8 col-sm-8">
                    <h3><a style="color:#3e3d8c;" href="/blogs/{{$blog->id}}">{{$blog->title}}</a></h3>
                 <footer class ="blockquote-footer">
                    <small>Written on {{$blog->created_at}} by: {{$blog->user->name}}</small>
                </footer>   
                </div>
            </div>
        </div>
    </div>
    @endforeach
    @else
    <p>No blogs found</p>
    @endif
@endsection

博客 Controller .php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Blog;

class blogController extends Controller
{
      /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        $this->middleware('auth', ['except' => ['index']]);
    }
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        $blog =Blog::orderBy('created_at','desc')->get();
        return view('pages.blogsIndex')->with('blogs',$blog);
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        //
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        //
    }

    /**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function show($id)
    {
        //
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function edit($id)
    {
        //
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, $id)
    {
        //
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function destroy($id)
    {
        //
    }
}

模型:Blog.php

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Blog extends Model
{
    //table name
    protected $table = 'students_blog';
    //Primary key
    public $primaryKey = 'id';

    //Timestamp
    public $timestamp = true;

    public function user(){
        return $this->hasMany('App\User');
    }
}

模型:User.php

<?php

namespace App;

use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;

class User extends Authenticatable
{
    use Notifiable;

    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $fillable = [
        'name', 'email', 'password','roll',
    ];

    /**
     * The attributes that should be hidden for arrays.
     *
     * @var array
     */
    protected $hidden = [
        'password', 'remember_token',
    ];
    public function feeds(){
        return $this->hasMany('App\Feed');
    }
    public function blogs(){
        return $this->hasMany('App\Blog');
    }
    public function mentor(){
        return $this->belongsTo('App\Mentor');
    }

}

路由:Web.php

<?php

/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/

Route::get('/', 'pagesController@index');
Route::post('/student', 'studentsFeedController@store')->name('student.feed.submit');


Auth::routes();

Route::get('/home', 'HomeController@index')->name('home');

Route::resource('blogs', 'blogController');



Route::prefix('mentor')->group(function(){
    Route::get('/register', 'Auth\MentorLoginController@showSignupForm')->name('mentor.signup');
    Route::post('/register', 'Auth\MentorLoginController@signupFormSubmit')->name('mentor.signup.submit');

    Route::get('/login', 'Auth\MentorLoginController@showLoginForm')->name('mentor.login');
    Route::post('/login', 'Auth\MentorLoginController@login')->name('mentor.login.submit');


    Route::get('/', 'MentorController@index')->name('mentor.dashboard');
});

表详细信息:有两个表,一个是通常的“用户”表。 “students_blog”有一个列名“student_id”。我可以通过 {{$blog->student_id}} 在我的 View 中获取 student_id,但我想要名字。写在...之后由:??

请帮助我。

最佳答案

改变这种关系:

public function user(){
    return $this->hasMany('App\User');
}

收件人:

public function user()
{
    return $this->belongsTo('App\User', 'student_id');
}

然后获取博客所有者的姓名:

$blog->user->name

关于php - 找不到列 : 1054 Unknown column 'users.blog_id' :SQL: select * from `users` where `users` .`blog_id` = 1 and `users` .`blog_id` is not null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48356171/

相关文章:

php - 你会如何从 PHP 迁移到 Hack?

php - 获取表格内列中显示的数据总数

php - 为什么我的 mysqli 实例在单元测试时失败?

python - 如何在 python 脚本中显示 MySql 数据?

php - Laravel 5.6 - 如何从非关系表中获取发布数据?

javascript - UniSharp laravel-filemanager 与 TinyMCE 5 集成

php - Laravel 5 更新/安装干预/图像时出错

mysql - 了解 MySQL log_queries_not_using_indexes 行为

Laravel 从 5.8 升级到 Laravel 6 - 调用未定义的方法 Laravel\Cashier\Cashier::useCurrency()

php - 如何将自定义属性值应用于成本