• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

obserwacja artykułów back-end laravel

Object Storage Arubacloud
0 głosów
196 wizyt
pytanie zadane 20 września 2018 w PHP przez mi-20 Stary wyjadacz (13,190 p.)

Witam, jak powinna wyglądać obserwacja artykułów po stronie back-endu. Oczywiście, po kliknięciu w "FOLLOW" do bazy zostają dodane dane takie jak 

user_id
article_id

jednak chcę, aby kiedy użytkownik kliknie FOLLOW przycisk zmienił się na UNFOLLOW, tak jak jest np na olx tylko z obserwacją ogłoszeń i wielu innych serwisach. Ogarnąłem to po stronie frontu jednak wiadomo, po odświeżeniu wracamy do zera. Po stronie back używam Laravela front jest w Vue

komentarz 20 września 2018 przez Igor Gawrys Stary wyjadacz (12,460 p.)
Podaj kod to pokaże jak.
komentarz 20 września 2018 przez mi-20 Stary wyjadacz (13,190 p.)

na razie mam tylko kod dodawania danych obserwowanego artykułu

public function store(FollowArticleRequest $request){
        $follow = new FollowArticle();
        $follow->user_id = Auth::user()->id;
        $follow->article_id = $request->article_id;
        $follow->save();
        return response()->json([
            'status' => 'success',
            'msg' => 'Dodano do obserwowanych!'
        ]);
    }

 

komentarz 20 września 2018 przez Igor Gawrys Stary wyjadacz (12,460 p.)
A kod który zwraca artykuł masz ? Jeśli tak to go podaj.
komentarz 20 września 2018 przez mi-20 Stary wyjadacz (13,190 p.)
public function view($id)
    {
        $article = Article::findOrFail($id);
        return response()->json([
            'data' => [
                'article' => $article
            ]
        ], 200);
    }

 

komentarz 20 września 2018 przez Igor Gawrys Stary wyjadacz (12,460 p.)
A masz jakomś relacje ?
komentarz 20 września 2018 przez mi-20 Stary wyjadacz (13,190 p.)
konkretni zdefiniowanej w laravelu jeszcze nie. Po prostu w tabeli FollowArticle mam kolumnę article_id i wiem który artykuł obserwuję

1 odpowiedź

0 głosów
odpowiedź 20 września 2018 przez Igor Gawrys Stary wyjadacz (12,460 p.)
wybrane 30 września 2018 przez mi-20
 
Najlepsza

Utwórz relacje i potem 

public function view($id)
    {
        $article = Article::with("RELACJA")->findOrFail($id);
        return response()->json([
            'data' => [
                'article' => $article
            ]
        ], 200);
    }

później napisz kod frontend

komentarz 20 września 2018 przez mi-20 Stary wyjadacz (13,190 p.)
jak ma wyglądać owa relacja?
komentarz 20 września 2018 przez Igor Gawrys Stary wyjadacz (12,460 p.)

W modelu article

public function follow(){
return $this->hasMany("App\FollowArticle","article_id","id");
} 

w klasie 

komentarz 20 września 2018 przez mi-20 Stary wyjadacz (13,190 p.)
ok, a "RELACJA" to nazwa klasy czyli w tym przypadku "follow"?
komentarz 20 września 2018 przez Igor Gawrys Stary wyjadacz (12,460 p.)
Tak i wyślij frontend
komentarz 30 września 2018 przez mi-20 Stary wyjadacz (13,190 p.)

no i teraz jednak nie wiem jak dopisać front

mam

 data() {
      return {
        follow: false
      }
    },


computed: {
      ...mapGetters({
        addFollowArticle: 'addFollowArticle',
        unFollow: 'unFollow'
      })
    },
methods: {
      addFollow() {
        this.$store.dispatch('addFollowArticle', this.$route.params.id)
      },

      unFollow() {
        this.$store.dispatch('deleteFollowArticle', this.$route.params.id)
      }

    },
<!-- subscribe widget -->
            <div class="widget subscribe-widget">
              <button v-if="!follow" class="input-btn w-100" @click="addFollow()"><i
                class="fa fa-star-o"></i> <span id="uFollow">
                Obserwuj
              </span>
              </button>
              <button v-else class="input-btn w-100" @click="unFollow()"><span class="fa fa-star"></span> Obserwujesz
              </button>
            </div>
            <!-- /subscribe widget -->

i teraz jak sprawdzić czy aktualnie zalogowany użytkownik obserwuje dany artykuł, gdzie zrobić tego ifa i zmieniać zmienną follow

dane z api otrzymuję w takiej formie

{
    "data": {
        "article": {
            "id": 2,
            "user_id": 2,
            "title": "Lorem ipsum dolor sit amet, consectetur adipiscing elit.",
            "description": "description",
            "body": "content",
            "created_at": "2018-09-30 09:26:32",
            "updated_at": "2018-09-30 09:26:32",
            "follow": [
                {
                    "id": 13,
                    "user_id": 2,
                    "article_id": 2,
                    "created_at": "2018-09-30 12:31:22",
                    "updated_at": "2018-09-30 12:31:22"
                }
            ]
        }
    }
}

 

komentarz 30 września 2018 przez Igor Gawrys Stary wyjadacz (12,460 p.)
methods:{
IsFollow(){
let return_data;
dane.filter(folow)=>{
if(!return_data){
return_data = follow.user.id==dane_user.id
}
});
}
}

Jeszcze zrób relacje użytkownika do follow

PS: WŁASNIE PRACUJE NAD PROJEKTEM W VUE

Podobne pytania

+1 głos
1 odpowiedź 220 wizyt
pytanie zadane 30 września 2020 w JavaScript przez Artek Stary wyjadacz (11,800 p.)
0 głosów
0 odpowiedzi 245 wizyt
pytanie zadane 21 października 2019 w PHP przez xxx1990 Początkujący (490 p.)
+1 głos
5 odpowiedzi 1,493 wizyt
pytanie zadane 17 września 2018 w Rozwój zawodowy, nauka, praca przez AreeQ Początkujący (290 p.)

92,536 zapytań

141,376 odpowiedzi

319,452 komentarzy

61,920 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...