猿问

使用外键检索数据 laravel react

我在 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。

拉丁的传说
浏览 89回答 1
1回答

海绵宝宝撒

您还需要获取类别:Route::get('product',&nbsp;function(){&nbsp;return&nbsp;App\Clothes::with('category')->get();&nbsp;});如果正确定义了模型和关系,这将起作用。在布料模型中添加:public&nbsp;function&nbsp;category(){ &nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;$this->belongsTo('App\Category',&nbsp;'category_id'&nbsp;); }在类别模型中添加:public&nbsp;function&nbsp;clothes(){ &nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;$this->hasMany('App\Clothes',&nbsp;'category_id'&nbsp;); }
随时随地看视频慕课网APP
我要回答