質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
dBASE

dBASEは、Ashton Tate社が開発したデータベース管理システム (DBMS) です。初期のマイクロコンピュータ向けに開発。広く使用されていました。現在は、RAD環境を取り入れたVisual dBASEとして、米dBASE社が提供しています。

SQLite

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Eloquent

Eloquentとは、PHPフレームワークのLaravelに最初から含まれているORM(Object-relational mapping:オブジェクト関係マッピング)です。

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

Q&A

1回答

1153閲覧

Laravel5 お気に入りの登録 を実装したい

syougosty

総合スコア27

dBASE

dBASEは、Ashton Tate社が開発したデータベース管理システム (DBMS) です。初期のマイクロコンピュータ向けに開発。広く使用されていました。現在は、RAD環境を取り入れたVisual dBASEとして、米dBASE社が提供しています。

SQLite

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Eloquent

Eloquentとは、PHPフレームワークのLaravelに最初から含まれているORM(Object-relational mapping:オブジェクト関係マッピング)です。

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

0グッド

0クリップ

投稿2018/12/02 21:57

Larabel5でWebアプリを作っているのですが、お気に入り登録 の機能を実装したいと思っています。
ユーザー認証でログインした状態で、表示されている各アイテムにあるお気に入りボタンを押すと、お気に入りに登録され、それをお気に入り一覧としてユーザーページで確認できるようにしたいです。
リーレーションだったりをいろいろ調べたのですが、自分がやろうとしていることの場合はどうプログラムを書いていいか分かりませんでした。
具体的な方法などを教えてくださるとありがたいです。

  • DBの操作はEloquentで行っています。
  • ユーザー用のUserのUserクラスとアイテム用のItemクラスがあります。

php

1//Userクラス 2<?php 3 4namespace App; 5 6use Illuminate\Notifications\Notifiable; 7use Illuminate\Contracts\Auth\MustVerifyEmail; 8use Illuminate\Foundation\Auth\User as Authenticatable; 9 10class User extends Authenticatable 11{ 12 use Notifiable; 13 14 /** 15 * The attributes that are mass assignable. 16 * 17 * @var array 18 */ 19 protected $fillable = [ 20 'name', 'email', 'password', 21 ]; 22 23 /** 24 * The attributes that should be hidden for arrays. 25 * 26 * @var array 27 */ 28 protected $hidden = [ 29 'password', 'remember_token', 30 ]; 31} 32

PHP

1//Itemクラス 2<?php 3 4namespace App; 5 6use Illuminate\Database\Eloquent\Model; 7 8class Item extends Model 9{ 10 protected $guarded = array('id'); 11 12 protected $table = 'items'; 13 14} 15
  • それぞれのテーブルです

PHP

1//usersテーブル 2 3 public function up() 4 { 5 Schema::create('users', function (Blueprint $table) { 6 $table->increments('id'); 7 $table->string('name'); 8 $table->string('email')->unique(); 9 $table->timestamp('email_verified_at')->nullable(); 10 $table->string('password'); 11 $table->rememberToken(); 12 $table->timestamps(); 13 }); 14 } 15

PHP

1//itemsテーブル 2 public function up() 3 { 4 Schema::create('items', function (Blueprint $table) { 5 $table->increments('id'); 6 $table->string('name'); 7 $table->string('manufacturer'); 8 $table->integer('itemtype'); 9 $table->string('material'); 10 $table->integer('weight'); 11 $table->integer('model_year'); 12 $table->string('link'); 13 $table->timestamps(); 14 }); 15 }
  • アイテムをお気に入り一覧に表示させるときは、naem,manufacturer,weightだけを表示させたいと思っています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

お気に入り用のテーブルを作る。
id
user_id
item_id
多対多のリレーションなのでUserとItemに置き換えてドキュメントを読めば大体分かる。
複雑なので読んで実際に自分で動かさないと覚えないけど。
https://readouble.com/laravel/5.7/ja/eloquent-relationships.html#many-to-many

お気に入りに追加時はattach。

$user->items()->attach($itemId);

投稿2018/12/03 00:37

kawax

総合スコア10377

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問