为了账号安全,请及时绑定邮箱和手机立即绑定

使用外键检索数据 laravel react

使用外键检索数据 laravel react

PHP
拉丁的传说 2023-04-28 13:54:35
我在 mysql 中有两个表,一个名为 category,带有 id 和 name(例如 1 Dress)public function up()    {        Schema::create('categories', function (Blueprint $table) {            $table->increments('id');            $table->string('name');            $table->timestamps();        });    }第二个表用外键 category_id 叫衣服(例如 1,Black Dress,very cool,10.99,/images.img1,10,1)public function up()    {        Schema::create('clothes', function (Blueprint $table) {         $table->increment('id');        $table->string('item');        $table->string('description');        $table->double('price');        $table->string('img');        $table->integer('stock');        $table->integer('category_id');        });        Schema::table('clothes', function($table) {            $table->foreign('category_id')->references('id')->on('categories');        });    }所以我正在尝试的是使用名称类别反应获取信息。componentDidMount(){        axios.get('product')        .then(response => {          this.setState({ products: response.data });        })        .catch(function (error) {          console.log(error);        })render(){    return (        <div className="container">        <h5>Products</h5>        <br /><div className="row justify-content-center">             {this.state.products.map((data,mykey)=>          <div  className="card"  key={mykey}>             <img className="card-img-top" src={data.img}></img>              <div className="card-body">             <h4 className="card-title"><b>{data.item}</b></h4>             <p className="card-text">{data.description}</p>             <ul className="list-group list-group-flush">    <li className="list-group-item"><b>Price: {data.price}$</b></li>    <li className="list-group-item"><p>{data.category_id} <Button>Yess</Button></p></li>  </ul>    </div></div>            )}           </div>        </div>      )  }在 web.php 中Route::get('product', function(){ return App\Clothes::all(); });通过这种方式,我得到的只是类别的数量,但我想获得类别的名称。我将不胜感激任何类型的想法或帮助获得类别名称而不仅仅是 id。
查看完整描述

1 回答

?
海绵宝宝撒

TA贡献1809条经验 获得超8个赞

您还需要获取类别:

Route::get('product', function(){ return App\Clothes::with('category')->get(); });

如果正确定义了模型和关系,这将起作用。

在布料模型中添加:

public function category(){
    return $this->belongsTo('App\Category', 'category_id' );
}

在类别模型中添加:

public function clothes(){
    return $this->hasMany('App\Clothes', 'category_id' );
}


查看完整回答
反对 回复 2023-04-28
  • 1 回答
  • 0 关注
  • 83 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信